package com.nq.utils;
|
|
import java.time.DayOfWeek;
|
import java.time.LocalDate;
|
import java.time.format.DateTimeFormatter;
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
public class MarketUtils {
|
public static void main(String[] args) {
|
LocalDate date = LocalDate.of(2026, 7, 18);
|
System.out.println("测试"+date.getYear()+"年"+date.getMonthValue()+"月"+date.getDayOfMonth()+"日");
|
if(isMarketClosed(date)){
|
System.out.println("测试结果:休市");
|
}else {
|
System.out.println("测试结果:开市");
|
}
|
List<String> days = getAllDaysInMonth("2024-02");
|
System.out.println(days);
|
}
|
|
public static List<String> getAllDaysInMonth(String yearMonth) {
|
List<String> days = new ArrayList<>();
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
|
LocalDate month = LocalDate.parse(yearMonth + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
int daysInMonth = month.lengthOfMonth();
|
|
for (int day = 1; day <= daysInMonth; day++) {
|
String dateStr = String.format("%s-%02d", yearMonth, day);
|
days.add(dateStr);
|
}
|
|
return days;
|
}
|
// A股法定休市日期(示例年份,实际需每年更新)
|
private static final List<String> HOLIDAYS = Arrays.asList(
|
"2026-01-01", "2026-01-02", "2026-01-03",
|
"2026-02-15", "2026-02-16", "2026-02-17", "2026-02-18", "2026-02-19", "2026-02-20", "2026-02-21", "2026-02-22", "2026-02-23",
|
"2026-04-04", "2026-04-05", "2026-04-06",
|
"2026-05-01", "2026-05-02", "2026-05-03", "2026-05-04", "2026-05-05",
|
"2026-06-19", "2026-06-20", "2026-06-21",
|
"2026-09-25", "2026-09-26", "2026-09-27",
|
"2026-10-01", "2026-10-02", "2026-10-03", "2026-10-04", "2026-10-05", "2026-10-06", "2026-10-07", "2026-10-08"
|
);
|
|
/**
|
* 判断A股是否休市
|
* @param date 待判断日期
|
* @return true:休市, false:开市
|
*/
|
public static boolean isMarketClosed(LocalDate date) {
|
// 周末休市
|
if (date.getDayOfWeek() == DayOfWeek.SATURDAY ||
|
date.getDayOfWeek() == DayOfWeek.SUNDAY) {
|
return true;
|
}
|
|
// 法定节假日休市
|
if (HOLIDAYS.contains(date.toString())) {
|
return true;
|
}
|
|
return false;
|
}
|
}
|