java Spring定时器 每个季度执行一次
@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终止月份
如引用本文内容,请标明出处。