java Spring定时器 每个季度执行一次
程序员文章站
2022-04-19 18:40:00
@Scheduled(cron = " 0 00 00 1 4,7,10,1 ?")//每个季度的第一天零点进行统计此注解是每个季度结束后的下一天执行(因为Spring不识别字母(L 每月最后一天))所以只能采用下个月的第一天以下代码针对时间进行处理 Calendar cal = Calendar. ......
@scheduled(cron = " 0 00 00 1 4,7,10,1 ?")//每个季度的第一天零点进行统计
此注解是每个季度结束后的下一天执行(因为spring不识别字母(l---每月最后一天))所以只能采用下个月的第一天
以下代码针对时间进行处理
calendar cal = calendar.getinstance();//当前时间
int month = cal.get(calendar.month) + 1;//当前月份
int year = cal.get(calendar.year);//当前年
int quarter=0;//当前季度
int stm = 1;//季度的起始月份
int etm = 3;//季度的结束月份
switch (month){
case 1: stm = 10; etm=12; quarter=3; year=year-1; break;//因为一月份进入方法是统计上一年第四季度的信息,所以处理年份信息
case 10: stm = 7; etm=9; quarter=2; break;//本年
case 7: stm = 4; etm=6; quarter=1; break;//本年
case 4: stm = 1; etm=3; quarter=0; break;//本年
}
最终得到 year---年份
quarter--季度
stm --起始月份
etm终止月份
下一篇: 揭秘:历史上的窦漪房得到过盛宠吗?