想做一个java闹钟,有人做过没
想做一个java闹钟,有人做过没
[解决办法]
这个可以用Spring的定时器做哦,
- XML code
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" > <beans> <!—要调度的对象--> <bean id="testQuarz" class="springtimer.TestQuarz" /> <!--定义定时执行testQuarz 这个bean中的sayHello()方法--> <bean id="helloworldTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="testQuarz" /> </property> <property name="targetMethod"> <value>sayHello</value> </property> </bean> <!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是helloworldTask,即触发器去触发哪个bean..并且我们还定义了触发的时间:每天5:17pm--> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean=" helloworldTask " /> </property> <property name="cronExpression"> <!-- 关键在配置此表达式 --> <value>0 17 17 * * ?</value> </property> </bean> <!--管理触发器的总设置,管理我们的触发器列表,可以在bean的list中放置多个触发器。 --> <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="cronTrigger" /> </list> </property> </bean> </beans> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" > <beans> <!—要调度的对象--> <bean id="testQuarz" class="springtimer.TestQuarz" /> <!--定义定时执行testQuarz 这个bean中的sayHello()方法--> <bean id="helloworldTask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="testQuarz" /> </property> <property name="targetMethod"> <value>sayHello</value> </property> </bean> <!--触发器的bean的设置,在这里我们设置了我们要触发的jobDetail是哪个。这里我们定义了要触发的jobDetail是helloworldTask,即触发器去触发哪个bean..并且我们还定义了触发的时间:每天5:17pm--> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean=" helloworldTask " /> </property> <property name="cronExpression"> <!-- 关键在配置此表达式 --> <value>0 17 17 * * ?</value> </property> </bean> <!--管理触发器的总设置,管理我们的触发器列表,可以在bean的list中放置多个触发器。 --> <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref local="cronTrigger" /> </list> </property> </bean> </beans>
[解决办法]
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
每隔5秒执行一次:*/5 * * * * ?
每隔1分钟执行一次:0 */1 * * * ?
每天23点执行一次:0 0 23 * * ?
每天凌晨1点执行一次:0 0 1 * * ?
每月1号凌晨1点执行一次:0 0 1 1 * ?
每月最后一天23点执行一次:0 0 23 L * ?
每周星期天凌晨1点实行一次:0 0 1 ? * L
[解决办法]
。。。。这个也犯得着用spring????
java自带的定时器就能搞定,再不济自己写个线程就搞定了。
[解决办法]
- Java code
import java.util.*;class Test { public static void main(String[] args) { Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { public void run() { Calendar c = Calendar.getInstance(); System.out.printf("%tF %tT\n", c.getTime(), c.getTime()); } }, 0, 1000); }}
[解决办法]
- Java code
public static void main(String[] args) { try { new Timer().scheduleAtFixedRate(new TimerTask() { public void run() { System.out.println("闹钟响了"); } }, new SimpleDateFormat("yyyyMMdd HH:mm:ss").parse("20110826 23:23:00"), 24*60*60*1000); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } }