mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-04-19 03:01:48 +08:00
Week.of支持中文名称
This commit is contained in:
parent
6a5ff924ee
commit
593af4e958
@ -13,6 +13,7 @@
|
||||
package org.dromara.hutool.core.date;
|
||||
|
||||
import org.dromara.hutool.core.lang.Assert;
|
||||
import org.dromara.hutool.core.text.StrUtil;
|
||||
|
||||
import java.time.DayOfWeek;
|
||||
import java.util.Calendar;
|
||||
@ -180,6 +181,28 @@ public enum Week {
|
||||
*/
|
||||
public static Week of(final String name) throws IllegalArgumentException {
|
||||
if (null != name && name.length() > 1) {
|
||||
// issue#3637
|
||||
if (StrUtil.startWithAny(name, "星期", "周")) {
|
||||
final char chineseNumber = name.charAt(name.length() - 1);
|
||||
switch (chineseNumber) {
|
||||
case '一':
|
||||
return MONDAY;
|
||||
case '二':
|
||||
return TUESDAY;
|
||||
case '三':
|
||||
return WEDNESDAY;
|
||||
case '四':
|
||||
return THURSDAY;
|
||||
case '五':
|
||||
return FRIDAY;
|
||||
case '六':
|
||||
return SATURDAY;
|
||||
case '日':
|
||||
return SUNDAY;
|
||||
}
|
||||
throw new IllegalArgumentException("Invalid week name: " + name);
|
||||
}
|
||||
|
||||
switch (Character.toLowerCase(name.charAt(0))) {
|
||||
case 'm':
|
||||
return MONDAY; // monday
|
||||
|
@ -12,79 +12,105 @@
|
||||
|
||||
package org.dromara.hutool.core.date;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.time.DayOfWeek;
|
||||
import java.util.Calendar;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
|
||||
public class WeekTest {
|
||||
|
||||
@Test
|
||||
public void ofTest(){
|
||||
//测试别名及大小写
|
||||
Assertions.assertEquals(Week.SUNDAY, Week.of("sun"));
|
||||
Assertions.assertEquals(Week.SUNDAY, Week.of("SUN"));
|
||||
Assertions.assertEquals(Week.SUNDAY, Week.of("Sun"));
|
||||
assertEquals(Week.SUNDAY, Week.of("sun"));
|
||||
assertEquals(Week.SUNDAY, Week.of("SUN"));
|
||||
assertEquals(Week.SUNDAY, Week.of("Sun"));
|
||||
//测试全名及大小写
|
||||
Assertions.assertEquals(Week.SUNDAY, Week.of("sunday"));
|
||||
Assertions.assertEquals(Week.SUNDAY, Week.of("Sunday"));
|
||||
Assertions.assertEquals(Week.SUNDAY, Week.of("SUNDAY"));
|
||||
assertEquals(Week.SUNDAY, Week.of("sunday"));
|
||||
assertEquals(Week.SUNDAY, Week.of("Sunday"));
|
||||
assertEquals(Week.SUNDAY, Week.of("SUNDAY"));
|
||||
|
||||
Assertions.assertEquals(Week.MONDAY, Week.of("Mon"));
|
||||
Assertions.assertEquals(Week.MONDAY, Week.of("Monday"));
|
||||
assertEquals(Week.MONDAY, Week.of("Mon"));
|
||||
assertEquals(Week.MONDAY, Week.of("Monday"));
|
||||
|
||||
Assertions.assertEquals(Week.TUESDAY, Week.of("tue"));
|
||||
Assertions.assertEquals(Week.TUESDAY, Week.of("tuesday"));
|
||||
assertEquals(Week.TUESDAY, Week.of("tue"));
|
||||
assertEquals(Week.TUESDAY, Week.of("tuesday"));
|
||||
|
||||
Assertions.assertEquals(Week.WEDNESDAY, Week.of("wed"));
|
||||
Assertions.assertEquals(Week.WEDNESDAY, Week.of("WEDNESDAY"));
|
||||
assertEquals(Week.WEDNESDAY, Week.of("wed"));
|
||||
assertEquals(Week.WEDNESDAY, Week.of("WEDNESDAY"));
|
||||
|
||||
Assertions.assertEquals(Week.THURSDAY, Week.of("thu"));
|
||||
Assertions.assertEquals(Week.THURSDAY, Week.of("THURSDAY"));
|
||||
assertEquals(Week.THURSDAY, Week.of("thu"));
|
||||
assertEquals(Week.THURSDAY, Week.of("THURSDAY"));
|
||||
|
||||
Assertions.assertEquals(Week.FRIDAY, Week.of("fri"));
|
||||
Assertions.assertEquals(Week.FRIDAY, Week.of("FRIDAY"));
|
||||
assertEquals(Week.FRIDAY, Week.of("fri"));
|
||||
assertEquals(Week.FRIDAY, Week.of("FRIDAY"));
|
||||
|
||||
Assertions.assertEquals(Week.SATURDAY, Week.of("sat"));
|
||||
Assertions.assertEquals(Week.SATURDAY, Week.of("SATURDAY"));
|
||||
assertEquals(Week.SATURDAY, Week.of("sat"));
|
||||
assertEquals(Week.SATURDAY, Week.of("SATURDAY"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ofTest2(){
|
||||
Assertions.assertEquals(Week.SUNDAY, Week.of(DayOfWeek.SUNDAY));
|
||||
Assertions.assertEquals(Week.MONDAY, Week.of(DayOfWeek.MONDAY));
|
||||
Assertions.assertEquals(Week.TUESDAY, Week.of(DayOfWeek.TUESDAY));
|
||||
Assertions.assertEquals(Week.WEDNESDAY, Week.of(DayOfWeek.WEDNESDAY));
|
||||
Assertions.assertEquals(Week.THURSDAY, Week.of(DayOfWeek.THURSDAY));
|
||||
Assertions.assertEquals(Week.FRIDAY, Week.of(DayOfWeek.FRIDAY));
|
||||
Assertions.assertEquals(Week.SATURDAY, Week.of(DayOfWeek.SATURDAY));
|
||||
Assertions.assertEquals(Week.SATURDAY, Week.of(Calendar.SATURDAY));
|
||||
Assertions.assertNull(Week.of(10));
|
||||
Assertions.assertNull(Week.of(-1));
|
||||
assertEquals(Week.SUNDAY, Week.of(DayOfWeek.SUNDAY));
|
||||
assertEquals(Week.MONDAY, Week.of(DayOfWeek.MONDAY));
|
||||
assertEquals(Week.TUESDAY, Week.of(DayOfWeek.TUESDAY));
|
||||
assertEquals(Week.WEDNESDAY, Week.of(DayOfWeek.WEDNESDAY));
|
||||
assertEquals(Week.THURSDAY, Week.of(DayOfWeek.THURSDAY));
|
||||
assertEquals(Week.FRIDAY, Week.of(DayOfWeek.FRIDAY));
|
||||
assertEquals(Week.SATURDAY, Week.of(DayOfWeek.SATURDAY));
|
||||
assertEquals(Week.SATURDAY, Week.of(Calendar.SATURDAY));
|
||||
assertNull(Week.of(10));
|
||||
assertNull(Week.of(-1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ofChineseTest() {
|
||||
assertEquals(Week.SUNDAY, Week.of("星期日"));
|
||||
assertEquals(Week.SUNDAY, Week.of("周日"));
|
||||
|
||||
assertEquals(Week.MONDAY, Week.of("星期一"));
|
||||
assertEquals(Week.MONDAY, Week.of("周一"));
|
||||
|
||||
assertEquals(Week.TUESDAY, Week.of("星期二"));
|
||||
assertEquals(Week.TUESDAY, Week.of("周二"));
|
||||
|
||||
assertEquals(Week.WEDNESDAY, Week.of("星期三"));
|
||||
assertEquals(Week.WEDNESDAY, Week.of("周三"));
|
||||
|
||||
assertEquals(Week.THURSDAY, Week.of("星期四"));
|
||||
assertEquals(Week.THURSDAY, Week.of("周四"));
|
||||
|
||||
assertEquals(Week.FRIDAY, Week.of("星期五"));
|
||||
assertEquals(Week.FRIDAY, Week.of("周五"));
|
||||
|
||||
assertEquals(Week.SATURDAY, Week.of("星期六"));
|
||||
assertEquals(Week.SATURDAY, Week.of("周六"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toJdkDayOfWeekTest(){
|
||||
Assertions.assertEquals(DayOfWeek.MONDAY, Week.MONDAY.toJdkDayOfWeek());
|
||||
Assertions.assertEquals(DayOfWeek.TUESDAY, Week.TUESDAY.toJdkDayOfWeek());
|
||||
Assertions.assertEquals(DayOfWeek.WEDNESDAY, Week.WEDNESDAY.toJdkDayOfWeek());
|
||||
Assertions.assertEquals(DayOfWeek.THURSDAY, Week.THURSDAY.toJdkDayOfWeek());
|
||||
Assertions.assertEquals(DayOfWeek.FRIDAY, Week.FRIDAY.toJdkDayOfWeek());
|
||||
Assertions.assertEquals(DayOfWeek.SATURDAY, Week.SATURDAY.toJdkDayOfWeek());
|
||||
Assertions.assertEquals(DayOfWeek.SUNDAY, Week.SUNDAY.toJdkDayOfWeek());
|
||||
assertEquals(DayOfWeek.MONDAY, Week.MONDAY.toJdkDayOfWeek());
|
||||
assertEquals(DayOfWeek.TUESDAY, Week.TUESDAY.toJdkDayOfWeek());
|
||||
assertEquals(DayOfWeek.WEDNESDAY, Week.WEDNESDAY.toJdkDayOfWeek());
|
||||
assertEquals(DayOfWeek.THURSDAY, Week.THURSDAY.toJdkDayOfWeek());
|
||||
assertEquals(DayOfWeek.FRIDAY, Week.FRIDAY.toJdkDayOfWeek());
|
||||
assertEquals(DayOfWeek.SATURDAY, Week.SATURDAY.toJdkDayOfWeek());
|
||||
assertEquals(DayOfWeek.SUNDAY, Week.SUNDAY.toJdkDayOfWeek());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void toChineseTest(){
|
||||
Assertions.assertEquals("周一",Week.MONDAY.toChinese("周"));
|
||||
Assertions.assertEquals("星期一",Week.MONDAY.toChinese("星期"));
|
||||
Assertions.assertEquals("星期二",Week.TUESDAY.toChinese("星期"));
|
||||
Assertions.assertEquals("星期三",Week.WEDNESDAY.toChinese("星期"));
|
||||
Assertions.assertEquals("星期四",Week.THURSDAY.toChinese("星期"));
|
||||
Assertions.assertEquals("星期五",Week.FRIDAY.toChinese("星期"));
|
||||
Assertions.assertEquals("星期六",Week.SATURDAY.toChinese("星期"));
|
||||
Assertions.assertEquals("星期日",Week.SUNDAY.toChinese("星期"));
|
||||
Assertions.assertEquals("星期一",Week.MONDAY.toChinese());
|
||||
assertEquals("周一",Week.MONDAY.toChinese("周"));
|
||||
assertEquals("星期一",Week.MONDAY.toChinese("星期"));
|
||||
assertEquals("星期二",Week.TUESDAY.toChinese("星期"));
|
||||
assertEquals("星期三",Week.WEDNESDAY.toChinese("星期"));
|
||||
assertEquals("星期四",Week.THURSDAY.toChinese("星期"));
|
||||
assertEquals("星期五",Week.FRIDAY.toChinese("星期"));
|
||||
assertEquals("星期六",Week.SATURDAY.toChinese("星期"));
|
||||
assertEquals("星期日",Week.SUNDAY.toChinese("星期"));
|
||||
assertEquals("星期一",Week.MONDAY.toChinese());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user