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;
|
package org.dromara.hutool.core.date;
|
||||||
|
|
||||||
import org.dromara.hutool.core.lang.Assert;
|
import org.dromara.hutool.core.lang.Assert;
|
||||||
|
import org.dromara.hutool.core.text.StrUtil;
|
||||||
|
|
||||||
import java.time.DayOfWeek;
|
import java.time.DayOfWeek;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
@ -180,6 +181,28 @@ public enum Week {
|
|||||||
*/
|
*/
|
||||||
public static Week of(final String name) throws IllegalArgumentException {
|
public static Week of(final String name) throws IllegalArgumentException {
|
||||||
if (null != name && name.length() > 1) {
|
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))) {
|
switch (Character.toLowerCase(name.charAt(0))) {
|
||||||
case 'm':
|
case 'm':
|
||||||
return MONDAY; // monday
|
return MONDAY; // monday
|
||||||
|
@ -12,79 +12,105 @@
|
|||||||
|
|
||||||
package org.dromara.hutool.core.date;
|
package org.dromara.hutool.core.date;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.time.DayOfWeek;
|
import java.time.DayOfWeek;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
|
|
||||||
public class WeekTest {
|
public class WeekTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void ofTest(){
|
public void ofTest(){
|
||||||
//测试别名及大小写
|
//测试别名及大小写
|
||||||
Assertions.assertEquals(Week.SUNDAY, Week.of("sun"));
|
assertEquals(Week.SUNDAY, Week.of("sun"));
|
||||||
Assertions.assertEquals(Week.SUNDAY, Week.of("SUN"));
|
assertEquals(Week.SUNDAY, Week.of("SUN"));
|
||||||
Assertions.assertEquals(Week.SUNDAY, Week.of("Sun"));
|
assertEquals(Week.SUNDAY, Week.of("Sun"));
|
||||||
//测试全名及大小写
|
//测试全名及大小写
|
||||||
Assertions.assertEquals(Week.SUNDAY, Week.of("sunday"));
|
assertEquals(Week.SUNDAY, Week.of("sunday"));
|
||||||
Assertions.assertEquals(Week.SUNDAY, Week.of("Sunday"));
|
assertEquals(Week.SUNDAY, Week.of("Sunday"));
|
||||||
Assertions.assertEquals(Week.SUNDAY, Week.of("SUNDAY"));
|
assertEquals(Week.SUNDAY, Week.of("SUNDAY"));
|
||||||
|
|
||||||
Assertions.assertEquals(Week.MONDAY, Week.of("Mon"));
|
assertEquals(Week.MONDAY, Week.of("Mon"));
|
||||||
Assertions.assertEquals(Week.MONDAY, Week.of("Monday"));
|
assertEquals(Week.MONDAY, Week.of("Monday"));
|
||||||
|
|
||||||
Assertions.assertEquals(Week.TUESDAY, Week.of("tue"));
|
assertEquals(Week.TUESDAY, Week.of("tue"));
|
||||||
Assertions.assertEquals(Week.TUESDAY, Week.of("tuesday"));
|
assertEquals(Week.TUESDAY, Week.of("tuesday"));
|
||||||
|
|
||||||
Assertions.assertEquals(Week.WEDNESDAY, Week.of("wed"));
|
assertEquals(Week.WEDNESDAY, Week.of("wed"));
|
||||||
Assertions.assertEquals(Week.WEDNESDAY, Week.of("WEDNESDAY"));
|
assertEquals(Week.WEDNESDAY, Week.of("WEDNESDAY"));
|
||||||
|
|
||||||
Assertions.assertEquals(Week.THURSDAY, Week.of("thu"));
|
assertEquals(Week.THURSDAY, Week.of("thu"));
|
||||||
Assertions.assertEquals(Week.THURSDAY, Week.of("THURSDAY"));
|
assertEquals(Week.THURSDAY, Week.of("THURSDAY"));
|
||||||
|
|
||||||
Assertions.assertEquals(Week.FRIDAY, Week.of("fri"));
|
assertEquals(Week.FRIDAY, Week.of("fri"));
|
||||||
Assertions.assertEquals(Week.FRIDAY, Week.of("FRIDAY"));
|
assertEquals(Week.FRIDAY, Week.of("FRIDAY"));
|
||||||
|
|
||||||
Assertions.assertEquals(Week.SATURDAY, Week.of("sat"));
|
assertEquals(Week.SATURDAY, Week.of("sat"));
|
||||||
Assertions.assertEquals(Week.SATURDAY, Week.of("SATURDAY"));
|
assertEquals(Week.SATURDAY, Week.of("SATURDAY"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void ofTest2(){
|
public void ofTest2(){
|
||||||
Assertions.assertEquals(Week.SUNDAY, Week.of(DayOfWeek.SUNDAY));
|
assertEquals(Week.SUNDAY, Week.of(DayOfWeek.SUNDAY));
|
||||||
Assertions.assertEquals(Week.MONDAY, Week.of(DayOfWeek.MONDAY));
|
assertEquals(Week.MONDAY, Week.of(DayOfWeek.MONDAY));
|
||||||
Assertions.assertEquals(Week.TUESDAY, Week.of(DayOfWeek.TUESDAY));
|
assertEquals(Week.TUESDAY, Week.of(DayOfWeek.TUESDAY));
|
||||||
Assertions.assertEquals(Week.WEDNESDAY, Week.of(DayOfWeek.WEDNESDAY));
|
assertEquals(Week.WEDNESDAY, Week.of(DayOfWeek.WEDNESDAY));
|
||||||
Assertions.assertEquals(Week.THURSDAY, Week.of(DayOfWeek.THURSDAY));
|
assertEquals(Week.THURSDAY, Week.of(DayOfWeek.THURSDAY));
|
||||||
Assertions.assertEquals(Week.FRIDAY, Week.of(DayOfWeek.FRIDAY));
|
assertEquals(Week.FRIDAY, Week.of(DayOfWeek.FRIDAY));
|
||||||
Assertions.assertEquals(Week.SATURDAY, Week.of(DayOfWeek.SATURDAY));
|
assertEquals(Week.SATURDAY, Week.of(DayOfWeek.SATURDAY));
|
||||||
Assertions.assertEquals(Week.SATURDAY, Week.of(Calendar.SATURDAY));
|
assertEquals(Week.SATURDAY, Week.of(Calendar.SATURDAY));
|
||||||
Assertions.assertNull(Week.of(10));
|
assertNull(Week.of(10));
|
||||||
Assertions.assertNull(Week.of(-1));
|
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
|
@Test
|
||||||
public void toJdkDayOfWeekTest(){
|
public void toJdkDayOfWeekTest(){
|
||||||
Assertions.assertEquals(DayOfWeek.MONDAY, Week.MONDAY.toJdkDayOfWeek());
|
assertEquals(DayOfWeek.MONDAY, Week.MONDAY.toJdkDayOfWeek());
|
||||||
Assertions.assertEquals(DayOfWeek.TUESDAY, Week.TUESDAY.toJdkDayOfWeek());
|
assertEquals(DayOfWeek.TUESDAY, Week.TUESDAY.toJdkDayOfWeek());
|
||||||
Assertions.assertEquals(DayOfWeek.WEDNESDAY, Week.WEDNESDAY.toJdkDayOfWeek());
|
assertEquals(DayOfWeek.WEDNESDAY, Week.WEDNESDAY.toJdkDayOfWeek());
|
||||||
Assertions.assertEquals(DayOfWeek.THURSDAY, Week.THURSDAY.toJdkDayOfWeek());
|
assertEquals(DayOfWeek.THURSDAY, Week.THURSDAY.toJdkDayOfWeek());
|
||||||
Assertions.assertEquals(DayOfWeek.FRIDAY, Week.FRIDAY.toJdkDayOfWeek());
|
assertEquals(DayOfWeek.FRIDAY, Week.FRIDAY.toJdkDayOfWeek());
|
||||||
Assertions.assertEquals(DayOfWeek.SATURDAY, Week.SATURDAY.toJdkDayOfWeek());
|
assertEquals(DayOfWeek.SATURDAY, Week.SATURDAY.toJdkDayOfWeek());
|
||||||
Assertions.assertEquals(DayOfWeek.SUNDAY, Week.SUNDAY.toJdkDayOfWeek());
|
assertEquals(DayOfWeek.SUNDAY, Week.SUNDAY.toJdkDayOfWeek());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void toChineseTest(){
|
public void toChineseTest(){
|
||||||
Assertions.assertEquals("周一",Week.MONDAY.toChinese("周"));
|
assertEquals("周一",Week.MONDAY.toChinese("周"));
|
||||||
Assertions.assertEquals("星期一",Week.MONDAY.toChinese("星期"));
|
assertEquals("星期一",Week.MONDAY.toChinese("星期"));
|
||||||
Assertions.assertEquals("星期二",Week.TUESDAY.toChinese("星期"));
|
assertEquals("星期二",Week.TUESDAY.toChinese("星期"));
|
||||||
Assertions.assertEquals("星期三",Week.WEDNESDAY.toChinese("星期"));
|
assertEquals("星期三",Week.WEDNESDAY.toChinese("星期"));
|
||||||
Assertions.assertEquals("星期四",Week.THURSDAY.toChinese("星期"));
|
assertEquals("星期四",Week.THURSDAY.toChinese("星期"));
|
||||||
Assertions.assertEquals("星期五",Week.FRIDAY.toChinese("星期"));
|
assertEquals("星期五",Week.FRIDAY.toChinese("星期"));
|
||||||
Assertions.assertEquals("星期六",Week.SATURDAY.toChinese("星期"));
|
assertEquals("星期六",Week.SATURDAY.toChinese("星期"));
|
||||||
Assertions.assertEquals("星期日",Week.SUNDAY.toChinese("星期"));
|
assertEquals("星期日",Week.SUNDAY.toChinese("星期"));
|
||||||
Assertions.assertEquals("星期一",Week.MONDAY.toChinese());
|
assertEquals("星期一",Week.MONDAY.toChinese());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user