[improve] 优化、完善注释

This commit is contained in:
VampireAchao 2024-02-27 01:28:38 +08:00 committed by VampireAchao
parent 2f2076b1ea
commit 6b4d279155

View File

@ -11,23 +11,31 @@ import java.util.Map;
/** /**
* 时辰转换器支持宋以后的二十四时辰制度 * 时辰转换器支持宋以后的二十四时辰制度
* <p> * <p>本转换器提供以下功能
* 该转换器能够处理包含后缀的长安时辰描述并根据这些描述自动返回相应的现代时间段 * <ul>
* 对于的描述分别对应每个时辰的前半段和后半段而不带后缀的时辰描述则表示该时辰的整个时间段 * <li>处理包含后缀的长安时辰描述并自动返回相应的现代时间段
* 分别对应每个时辰的前半段和后半段而不带后缀的描述则涵盖该时辰的完整时间段</li>
* <li>根据小时数转换为相应的长安时辰描述通过{@code isAbs}参数控制是否包含</li>
* </ul>
* </p> * </p>
* <p> * <p>
* 此外该转换器还提供了根据小时数转换为对应的长安时辰描述的功能通过isAbs参数可以控制返回的描述是否包含 * 异常情况
* <ul>
* <li>如果输入的长安时辰描述无效或不被识别{@code toModernTime} 方法将抛出 {@code IllegalArgumentException}</li>
* <li>同样如果{@code toShiChen}方法接收到无效的小时数将返回未知</li>
* </ul>
* </p> * </p>
* <p> * <p>
* 示例 * 示例
* <ul> * <ul>
* <li>toModernTime("子时") 返回的时间段从23点开始到1点结束</li> * <li>{@code toModernTime("子时")} 返回的时间段从23点开始到1点结束</li>
* <li>toModernTime("子初") 返回的时间段从23点开始到0点结束</li> * <li>{@code toModernTime("子初")} 返回的时间段从23点开始到0点结束</li>
* <li>toModernTime("子正") 返回的时间段从0点开始到1点结束</li> * <li>{@code toModernTime("子正")} 返回的时间段从0点开始到1点结束</li>
* <li>toShiChen(0, false) 返回子正</li> * <li>{@code toShiChen(0, false)} 返回子正</li>
* <li>toShiChen(0, true) 返回子时</li> * <li>{@code toShiChen(0, true)} 返回子时</li>
* </ul> * </ul>
* </p> * </p>
*
* @author achao@hutool.cn * @author achao@hutool.cn
*/ */
public class ShiChen { public class ShiChen {
@ -59,6 +67,21 @@ public class ShiChen {
} }
} }
/**
* 将长安时辰描述转换为现代时间段
* <p>
* 示例
* <ul>
* <li>{@code toModernTime("子时")} 返回的时间段从23点开始到1点结束</li>
* <li>{@code toModernTime("子初")} 返回的时间段从23点开始到0点结束</li>
* <li>{@code toModernTime("子正")} 返回的时间段从0点开始到1点结束</li>
* </ul>
* </p>
*
* @param shiChen 长安时辰描述可以是结尾
* @return {@link DateBetween} 对象表示起始和结束时间
* @throws IllegalArgumentException 如果输入的长安时辰描述无效
*/
public static DateBetween toModernTime(String shiChen) { public static DateBetween toModernTime(String shiChen) {
if (StrUtil.isEmpty(shiChen)) { if (StrUtil.isEmpty(shiChen)) {
throw new IllegalArgumentException("Invalid shiChen"); throw new IllegalArgumentException("Invalid shiChen");
@ -91,6 +114,20 @@ public class ShiChen {
return DateBetween.of(startDate, endDate); return DateBetween.of(startDate, endDate);
} }
/**
* 根据给定的小时数转换为对应的长安时辰描述
* <p>
* 示例
* <ul>
* <li>{@code toShiChen(0, false)} 返回子正</li>
* <li>{@code toShiChen(0, true)} 返回子时</li>
* </ul>
* </p>
*
* @param hour 小时数应在0到23之间
* @param isAbs 是否返回绝对时辰描述即包含后缀而不是
* @return 长安时辰描述如果小时数无效则返回未知
*/
public static String toShiChen(int hour, boolean isAbs) { public static String toShiChen(int hour, boolean isAbs) {
String result = hourToShiChenAbsMap.getOrDefault(hour, "未知"); String result = hourToShiChenAbsMap.getOrDefault(hour, "未知");
if (!isAbs && !result.equals("未知")) { if (!isAbs && !result.equals("未知")) {