java中每个月第一天执行一次任务的定时器如何实现?

else //当前不是1号 则从下个月1号开始执行定期任务 { c.set(Calendar.MONTH,c.get(Calendar.MONTH)+ 1);//设置为下月 c.set(Calendar.DAY_OF_MONTH,1);//设置为下月的1号 Timer timer =new Timer();timer.scheduleAtFixedRate(new TimerTask(){ public void run(){ //每天都来判断...
java中每个月第一天执行一次任务的定时器如何实现?
既然Timer你都做了,那还有什么难的?
。。。
Calendar c=Calendar.getInstance();
int day=c.get(Calendar.DAY_OF_MONTH);
if(day==1) {
//执行
}
。。。2010-05-28
Thread

java.util.Timer和java.util.TimerTask
java.util.concurrent.ScheduledExecutorService
利用这三种方式都可以实现定时执行任务。2015-07-02
Date d = new Date();//获取服务器的时间。。。
Calendar c= Canlendar.getInstance();
c.setTime(d);

if(c.get(Calendar.DAY_OF_MONTH) == 1) //当前是1号
{
//拿出党员的入党日期(年月)同当前月进行比较 如果相同 发送短信
// //写下你的判断代码
}
else //当前不是1号 则从下个月1号开始执行定期任务
{

c.set(Calendar.MONTH,c.get(Calendar.MONTH)+ 1);//设置为下月
c.set(Calendar.DAY_OF_MONTH,1);//设置为下月的1号

Timer timer =new Timer();

timer.scheduleAtFixedRate(new TimerTask()
{
public void run()
{
//每天都来判断一下 如果当前日期是1号
////则拿出党员的入党日期(年月)同当前月进行比较 如果相同 发送短信
//run函数里写下你的判断代码
}},c.getTime(),24* 3600*1000); //每天执行一次run()方法...
}2010-05-28
据我所知,java典型的有三种定时器。一一简介如下:
java定时器。java提供了了类java.util.TimerTask类基于线程的方式来实现定时任务的操作,然后再提供java.util.Timer类来注册调用,先创建一个类 RingTask 继承 java.util.TimerTask,实现run方法。缺点:时间的设定不够灵活,服务器开启不会触发定时器。
Spring定时器。spring定时器是在spring框架中应用较成熟的一种方式,spring将定时任务的调用部分提到了配置文件当中,使定时器的触发条件变得更加灵活,spring定时器的实现,仍然需要 继承 java.util.TimerTask,实现run方法。需要配置。
缺点:对于指定了具体的年月日时分秒而执行的任务还是不能解决。
Quartz定时器。Quartz是基于Spring框架之上的更加强大的定时器,它不仅可以轻松的实现前面两种定时器的功能,还实现了非常繁复的时间触发执行的任务,Quartz有两种方式来调度定时任务,一是使用Spring提供的 MethodInvokingJobDetailFactoryBean 代理类,Quartz通过该代理类直接调度任务类的某个函数;二是任务类继承QuartzJobBean类或者实现org.quartz.Job接口,Quartz通过该父类或者接口进行调度。需要配置。
按照你的需求,可以使用Quartz定时器,触发时间设置如下:
0 0 0 1 * ? 每月1号上午00点00分触发
其他由你自己去探索实现。
2015-05-22
用定时器每隔一段时间就判断一下系统时间,看是否是每个月的1号,不就行了,是就提醒
不过我感觉java.swing.Timer定时器能更好点2010-05-28
LZ做到了每天8点准时发短信,说明LZ也可以知道每个月1号准时发短信;因为LZ很聪明。
原有的生日短信使用的是员工生日和今天进行匹配,那么LZ就目前需求得出了这样一个答案:在1号发短信规则的基础上,使用当前月跟党员入党日期进行匹配,配上了就发短信给他!LZ好样的!2013-01-15
http://www.ibm.com/developerworks/cn/java/j-schedule/
希望这个就是你要的哈。2010-05-28
mengvlog 阅读 24 次 更新于 2025-09-10 05:06:51 我来答关注问题0
  •  深空见闻 java中使用假日库获取每个月第一个工作日

    获取目标月份的第一天:使用Java的日期和时间API(如LocalDate类)来获取目标月份的第一天。判断是否为工作日:利用假日库提供的API来判断获取到的日期是否为工作日。如果不是工作日,则继续判断下一个日期。循环判断直到找到第一个工作日:使用一个循环结构,从目标月份的第一天开始,逐日判断是否为工作日...

  •  深空游戏 Java语句求解释! //求解释三个for循环,和为什么星期几要减1

    Java中的get方法返回1表示的是星期日,而返回7表示的是星期六,因此需要将这些值减1才能得到正确的星期编号。这个程序通过三个for循环来生成一个日历表。第一个for循环用于找出每个月中那些早于第一天的日期,并将它们标记为**,这通常表示这些日期不属于当前月份。第二个for循环从一个月的第一天开始,...

  •  深空见闻 java每周的第一天是周日还是周一

    Java中每周的第一天可以是周日也可以是周一,这取决于具体的实现和配置。一、Calendar类的设置 在使用java.util.Calendar类时,每周的第一天可以通过设置来指定。默认情况下,Calendar类并不固定一周的第一天是周日还是周一。开发者可以通过设置Calendar.DAY_OF_WEEK为Calendar.SUNDAY或Calendar.MONDAY来明确指...

  •  宸辰游艺策划 【高手帮助】JAVA怎样取一个月第一天和最后一天的日期?

    例如,在Java中,你可以这样操作:首先,创建一个Calendar对象并设置为当前日期:Calendar calendar = Calendar.getInstance();接着,获取当前月份的第一天:calendar.set(Calendar.DAY_OF_MONTH, 1);然后,获取当前月份的最后一天:calendar.add(Calendar.DAY_OF_MONTH, 1);calendar.set(Calendar.DAY_OF_...

  •  阿暄生活 用什么公式取当月第一天

    使用datetime模块中的datetime类来获取当前日期,然后通过replace方法将日期设置为当月的第一天。公式:current_date.replace(day=1)其中,current_date是通过datetime.now()获取的当前日期。JavaScript:使用Date对象获取当前日期,然后创建一个新的Date对象,其年、月参数使用当前日期的年、月,日参数设置为1...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部