读书人

想做一个java闹钟有人做过没有

发布时间: 2012-10-16 09:57:37 作者: rapoo

想做一个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();        }        } 

读书人网 >J2SE开发

热点推荐