|
@@ -7497,7 +7497,6 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
String name = holidayName.trim();
|
|
String name = holidayName.trim();
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
- // 元旦:1月1日,通常3天假期(1月1日-1月3日)
|
|
|
|
|
if (name.contains("元旦")) {
|
|
if (name.contains("元旦")) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
LocalDate.of(year, 1, 1),
|
|
LocalDate.of(year, 1, 1),
|
|
@@ -7505,21 +7504,16 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 春节:农历正月初一,通常7天假期
|
|
|
|
|
if (name.contains("春节")) {
|
|
if (name.contains("春节")) {
|
|
|
- // 春节日期每年不同,这里提供近几年的数据,建议使用农历工具精确计算
|
|
|
|
|
- // 2024年春节:2月10日(农历正月初一)-2月16日
|
|
|
|
|
- // 2025年春节:1月29日(农历正月初一)-2月4日
|
|
|
|
|
- // 2026年春节:2月17日(农历正月初一)-2月23日
|
|
|
|
|
- if (year == 2024) {
|
|
|
|
|
|
|
+ if (year == 2028) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
- LocalDate.of(year, 2, 10),
|
|
|
|
|
- LocalDate.of(year, 2, 16)
|
|
|
|
|
|
|
+ LocalDate.of(year, 1, 25),
|
|
|
|
|
+ LocalDate.of(year, 2, 2)
|
|
|
};
|
|
};
|
|
|
- } else if (year == 2025) {
|
|
|
|
|
|
|
+ } else if (year == 2027) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
- LocalDate.of(year, 1, 29),
|
|
|
|
|
- LocalDate.of(year, 2, 4)
|
|
|
|
|
|
|
+ LocalDate.of(year, 2, 5),
|
|
|
|
|
+ LocalDate.of(year, 2, 13)
|
|
|
};
|
|
};
|
|
|
} else if (year == 2026) {
|
|
} else if (year == 2026) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
@@ -7527,7 +7521,6 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
LocalDate.of(year, 2, 23)
|
|
LocalDate.of(year, 2, 23)
|
|
|
};
|
|
};
|
|
|
} else {
|
|
} else {
|
|
|
- // 默认:根据年份大致估算(建议使用农历工具精确计算)
|
|
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
LocalDate.of(year, 2, 10),
|
|
LocalDate.of(year, 2, 10),
|
|
|
LocalDate.of(year, 2, 16)
|
|
LocalDate.of(year, 2, 16)
|
|
@@ -7535,42 +7528,34 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 情人节:2月14日,1天
|
|
|
|
|
if (name.contains("情人节")) {
|
|
if (name.contains("情人节")) {
|
|
|
LocalDate date = LocalDate.of(year, 2, 14);
|
|
LocalDate date = LocalDate.of(year, 2, 14);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 元宵节:农历正月十五,1天(通常在2月或3月)
|
|
|
|
|
if (name.contains("元宵")) {
|
|
if (name.contains("元宵")) {
|
|
|
- // 元宵节是春节后的第15天,这里简化处理
|
|
|
|
|
- // 2024年元宵节:2月24日,2025年元宵节:2月12日,2026年元宵节:3月4日
|
|
|
|
|
- if (year == 2024) {
|
|
|
|
|
- LocalDate date = LocalDate.of(year, 2, 24);
|
|
|
|
|
|
|
+ if (year == 2028) {
|
|
|
|
|
+ LocalDate date = LocalDate.of(year, 2, 9);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
- } else if (year == 2025) {
|
|
|
|
|
- LocalDate date = LocalDate.of(year, 2, 12);
|
|
|
|
|
|
|
+ } else if (year == 2027) {
|
|
|
|
|
+ LocalDate date = LocalDate.of(year, 2, 20);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
} else if (year == 2026) {
|
|
} else if (year == 2026) {
|
|
|
- LocalDate date = LocalDate.of(year, 3, 4);
|
|
|
|
|
|
|
+ LocalDate date = LocalDate.of(year, 3, 3);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
} else {
|
|
} else {
|
|
|
- // 默认:大致在2月底3月初
|
|
|
|
|
LocalDate date = LocalDate.of(year, 2, 24);
|
|
LocalDate date = LocalDate.of(year, 2, 24);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 清明节:通常4月4日或5日,通常3天假期
|
|
|
|
|
if (name.contains("清明")) {
|
|
if (name.contains("清明")) {
|
|
|
- // 清明节通常在4月4日或5日,这里以4月4日为基准,包含前后各1天
|
|
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
LocalDate.of(year, 4, 4),
|
|
LocalDate.of(year, 4, 4),
|
|
|
LocalDate.of(year, 4, 6)
|
|
LocalDate.of(year, 4, 6)
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 劳动节:5月1日,通常5天假期(5月1日-5月5日)
|
|
|
|
|
if (name.contains("劳动") || name.contains("五一")) {
|
|
if (name.contains("劳动") || name.contains("五一")) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
LocalDate.of(year, 5, 1),
|
|
LocalDate.of(year, 5, 1),
|
|
@@ -7578,25 +7563,19 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 儿童节:6月1日,1天
|
|
|
|
|
if (name.contains("儿童")) {
|
|
if (name.contains("儿童")) {
|
|
|
LocalDate date = LocalDate.of(year, 6, 1);
|
|
LocalDate date = LocalDate.of(year, 6, 1);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 端午节:农历五月初五,通常3天假期
|
|
|
|
|
if (name.contains("端午")) {
|
|
if (name.contains("端午")) {
|
|
|
- // 端午节通常在6月,这里提供近几年的数据
|
|
|
|
|
- // 2024年端午节:6月10日,2025年端午节:5月31日,2026年端午节:6月19日
|
|
|
|
|
- if (year == 2024) {
|
|
|
|
|
|
|
+ if (year == 2028) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
- LocalDate.of(year, 6, 10),
|
|
|
|
|
- LocalDate.of(year, 6, 12)
|
|
|
|
|
|
|
+ LocalDate.of(year, 6, 27)
|
|
|
};
|
|
};
|
|
|
- } else if (year == 2025) {
|
|
|
|
|
|
|
+ } else if (year == 2027) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
- LocalDate.of(year, 5, 31),
|
|
|
|
|
- LocalDate.of(year, 6, 2)
|
|
|
|
|
|
|
+ LocalDate.of(year, 6, 9)
|
|
|
};
|
|
};
|
|
|
} else if (year == 2026) {
|
|
} else if (year == 2026) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
@@ -7604,7 +7583,6 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
LocalDate.of(year, 6, 21)
|
|
LocalDate.of(year, 6, 21)
|
|
|
};
|
|
};
|
|
|
} else {
|
|
} else {
|
|
|
- // 默认:大致在6月中旬
|
|
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
LocalDate.of(year, 6, 10),
|
|
LocalDate.of(year, 6, 10),
|
|
|
LocalDate.of(year, 6, 12)
|
|
LocalDate.of(year, 6, 12)
|
|
@@ -7612,39 +7590,30 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 七夕:农历七月初七,1天(通常在8月)
|
|
|
|
|
if (name.contains("七夕")) {
|
|
if (name.contains("七夕")) {
|
|
|
- // 七夕通常在8月,这里提供近几年的数据
|
|
|
|
|
- // 2024年七夕:8月10日,2025年七夕:7月31日,2026年七夕:8月20日
|
|
|
|
|
- if (year == 2024) {
|
|
|
|
|
- LocalDate date = LocalDate.of(year, 8, 10);
|
|
|
|
|
|
|
+ if (year == 2028) {
|
|
|
|
|
+ LocalDate date = LocalDate.of(year, 8, 26);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
- } else if (year == 2025) {
|
|
|
|
|
- LocalDate date = LocalDate.of(year, 7, 31);
|
|
|
|
|
|
|
+ } else if (year == 2027) {
|
|
|
|
|
+ LocalDate date = LocalDate.of(year, 8, 8);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
} else if (year == 2026) {
|
|
} else if (year == 2026) {
|
|
|
- LocalDate date = LocalDate.of(year, 8, 20);
|
|
|
|
|
|
|
+ LocalDate date = LocalDate.of(year, 8, 19);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
} else {
|
|
} else {
|
|
|
- // 默认:大致在8月上旬
|
|
|
|
|
LocalDate date = LocalDate.of(year, 8, 10);
|
|
LocalDate date = LocalDate.of(year, 8, 10);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 中秋节:农历八月十五,通常3天假期
|
|
|
|
|
if (name.contains("中秋")) {
|
|
if (name.contains("中秋")) {
|
|
|
- // 中秋节通常在9月或10月,这里提供近几年的数据
|
|
|
|
|
- // 2024年中秋节:9月17日,2025年中秋节:10月6日,2026年中秋节:9月25日
|
|
|
|
|
- if (year == 2024) {
|
|
|
|
|
|
|
+ if (year == 2028) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
- LocalDate.of(year, 9, 17),
|
|
|
|
|
- LocalDate.of(year, 9, 19)
|
|
|
|
|
|
|
+ LocalDate.of(year, 10, 3)
|
|
|
};
|
|
};
|
|
|
- } else if (year == 2025) {
|
|
|
|
|
|
|
+ } else if (year == 2027) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
- LocalDate.of(year, 10, 6),
|
|
|
|
|
- LocalDate.of(year, 10, 8)
|
|
|
|
|
|
|
+ LocalDate.of(year, 9, 15)
|
|
|
};
|
|
};
|
|
|
} else if (year == 2026) {
|
|
} else if (year == 2026) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
@@ -7652,7 +7621,6 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
LocalDate.of(year, 9, 27)
|
|
LocalDate.of(year, 9, 27)
|
|
|
};
|
|
};
|
|
|
} else {
|
|
} else {
|
|
|
- // 默认:大致在9月下旬
|
|
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
LocalDate.of(year, 9, 29),
|
|
LocalDate.of(year, 9, 29),
|
|
|
LocalDate.of(year, 10, 1)
|
|
LocalDate.of(year, 10, 1)
|
|
@@ -7660,7 +7628,6 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 国庆节:10月1日,通常7天假期(10月1日-10月7日)
|
|
|
|
|
if (name.contains("国庆")) {
|
|
if (name.contains("国庆")) {
|
|
|
return new LocalDate[]{
|
|
return new LocalDate[]{
|
|
|
LocalDate.of(year, 10, 1),
|
|
LocalDate.of(year, 10, 1),
|
|
@@ -7668,20 +7635,16 @@ public class StoreInfoServiceImpl extends ServiceImpl<StoreInfoMapper, StoreInfo
|
|
|
};
|
|
};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 冬至:通常12月21日或22日,1天
|
|
|
|
|
if (name.contains("冬至")) {
|
|
if (name.contains("冬至")) {
|
|
|
- // 冬至通常在12月21日或22日,这里统一为12月22日
|
|
|
|
|
LocalDate date = LocalDate.of(year, 12, 22);
|
|
LocalDate date = LocalDate.of(year, 12, 22);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 平安夜:12月24日,1天
|
|
|
|
|
if (name.contains("平安夜")) {
|
|
if (name.contains("平安夜")) {
|
|
|
LocalDate date = LocalDate.of(year, 12, 24);
|
|
LocalDate date = LocalDate.of(year, 12, 24);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 圣诞节:12月25日,1天
|
|
|
|
|
if (name.contains("圣诞")) {
|
|
if (name.contains("圣诞")) {
|
|
|
LocalDate date = LocalDate.of(year, 12, 25);
|
|
LocalDate date = LocalDate.of(year, 12, 25);
|
|
|
return new LocalDate[]{date, date};
|
|
return new LocalDate[]{date, date};
|