请问如何写一个时间唤醒程序??? 如果是固定某天,某日做什么事,用Calender这个类。如果是定时的响应一些事情,用Timer,TimerTask这两个类。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用TimerTask做每月定时执行任务. /** * <p>Title: SubBillingTimer </p> * <p>Description:概要说明:设置定时发送包月计费包. 部分属性变量的解释: 部分函数/方法的解释: 1.setTimer() 设置执行任务时的特定时间._timer.schedule(new SubBillingTimer(), date); 2.subBilling() 绑定计费包并发送. 3.run() 到已经特定的时间就执行,并调用subBilling(),然后在调用setTimer()设置下个月的特定时间 */import java.util.Calendar;import java.util.Date;import java.util.TimerTask;import java.util.Timer;public class SubBillingTimer extends TimerTask { private Timer _timer; private int _day = 21; private int _hour = 2; public SubBillingTimer() { } public void run() { if(initConfigure.DEBUG_LEVEL > 8) { System.out.println(" -- Sub Billing Timer start run..."); } subBilling(); setTimer(_day, _hour, true); } public void setTimer(int day, int hour) { setTimer(day, hour, false); } public void setTimer(int day, int hour, boolean bgNextMonth) { _day = day; _hour = hour; Calendar cale = Calendar.getInstance();//Gets a calendar using the default time zone and locale. if(bgNextMonth || cale.get(cale.DAY_OF_MONTH) >= day) {//超过这个天数或者下个月为真,就是设定时间任务为下个月 cale.set(cale.MONTH, cale.get(cale.MONTH) + 1); } Date date = new Date(cale.get(cale.YEAR) - 1900, cale.get(cale.MONTH), day, hour, 0); if(_timer == null) { _timer = new Timer(); } System.out.println("Set SubBilling Timer["+date+":"+(date.getTime() - System.currentTimeMillis())+"]: " + _timer.toString()); _timer.schedule(new SubBillingTimer(), date);//Schedules the specified task for execution at the specified time.设定时间 } public void stop() { this.cancel(); _timer.cancel(); } private void subBilling() { } public static void main(String[] args) { SubBillingTimer sub_timer = new SubBillingTimer(); sub_timer.setTimer(21, 2); }} http://edu.tmn.cn/html/5/47/181/200532/21615.htm java用truezip压缩文件如何提高压缩比? how to find the key in HashMap in java 关于在ie里显示pdf文件的问题,在线等!谢谢各位 问个问题 awt如何用对话框获取文件夹路经 请问怎么设定让一个JTextArea只能输入200个字节,谢谢 给分 jbuilder 8中的数据库操作的问题。 Label类或者jLabel类可否支持鼠标双击事件响应?谢谢 非常幼稚的问题 在Eclipse中如何修改web.xml文件 为什么我在mysql连接参数中加上&useUnicode=true&characterEncoding=gb2312还是不能解决乱码呢?
/**
* <p>Title: SubBillingTimer </p>
* <p>Description:概要说明:设置定时发送包月计费包. 部分属性变量的解释:
部分函数/方法的解释:
1.setTimer() 设置执行任务时的特定时间._timer.schedule(new SubBillingTimer(), date);
2.subBilling() 绑定计费包并发送.
3.run() 到已经特定的时间就执行,并调用subBilling(),然后在调用setTimer()设置下个月的特定时间
*/import java.util.Calendar;
import java.util.Date;
import java.util.TimerTask;
import java.util.Timer;public class SubBillingTimer extends TimerTask {
private Timer _timer;
private int _day = 21;
private int _hour = 2; public SubBillingTimer() {
} public void run() {
if(initConfigure.DEBUG_LEVEL > 8) {
System.out.println(" -- Sub Billing Timer start run...");
}
subBilling();
setTimer(_day, _hour, true);
} public void setTimer(int day, int hour) {
setTimer(day, hour, false);
} public void setTimer(int day, int hour, boolean bgNextMonth) {
_day = day;
_hour = hour; Calendar cale = Calendar.getInstance();//Gets a calendar using the default time zone and locale.
if(bgNextMonth || cale.get(cale.DAY_OF_MONTH) >= day) {//超过这个天数或者下个月为真,就是设定时间任务为下个月
cale.set(cale.MONTH, cale.get(cale.MONTH) + 1);
}
Date date = new Date(cale.get(cale.YEAR) - 1900, cale.get(cale.MONTH), day, hour, 0);
if(_timer == null) {
_timer = new Timer();
}
System.out.println("Set SubBilling Timer["+date+":"+(date.getTime() - System.currentTimeMillis())+"]: " + _timer.toString());
_timer.schedule(new SubBillingTimer(), date);//Schedules the specified task for execution at the specified time.设定时间
} public void stop() {
this.cancel();
_timer.cancel();
} private void subBilling() {
} public static void main(String[] args) {
SubBillingTimer sub_timer = new SubBillingTimer();
sub_timer.setTimer(21, 2);
}
}