java 时钟(计时器) 每年年底最后一天(22:00) 执行一次(调用相应的方法)

是 网络计时器的那种 本人没有经验、请教各位大侠!最好带上解释、、

public class TimerTest {
private static Calendar cal = Calendar.getInstance();
public static void main(String[] args) throws ParseException {
final Timer timer = new Timer();
Date lastDay = getLastDate();
TimerTask task = new TimerTask() {
@Override
public void run() {
// do something
// 在这里写需要执行的操作
timer.schedule(this, nextYear());
}
};
timer.schedule(task, lastDay);
}
protected static Date nextYear() {
cal.add(Calendar.YEAR, 1);
return cal.getTime();
}
private static Date getLastDate() throws ParseException {
// 获取本年最后一天的Date对象
SimpleDateFormat formattor = new SimpleDateFormat("MM-dd HH:mm:ss");
Date date = formattor.parse("12-31 00:00:00");
int year = cal.get(Calendar.YEAR);
cal.setTime(date);
cal.set(Calendar.YEAR, year);
return cal.getTime();
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-04
用quartz包里的方法可以实现,在服务开启来就运行。表达式可能是“ 0 0 22 31 12 ? * ”,这个你查一下
第2个回答  2012-12-04
这个可以看看quartz框架。

java 时钟(计时器) 每年年底最后一天(22:00) 执行一次(调用相应的方 ...
private static Date getLastDate() throws ParseException { \/\/ 获取本年最后一天的Date对象 SimpleDateFormat formattor = new SimpleDateFormat("MM-dd HH:mm:ss");Date date = formattor.parse("12-31 00:00:00");int year = cal.get(Calendar.YEAR);cal.setTime(date);cal.set(Calendar...

请人解释:java.util.Timer类的方法schedule的参数(执行各后续任务之间...
就是每次执行的间隔时间,第一次与第二次的时间,单位为毫秒,如果为0表示只执行一次!把你邮箱发我,我有例子

如何用java实现一个计时器来定时读取和写入数据库?急!
\/\/也可以 自己 定义一个类 继承TimerTask这个类 \/\/里面必须实现 run方法 \/\/run方法 里面就写你的 实做 方法 \/\/schedule 方法有很多重载 有很多参数我用最简单的 \/\/给你说明 第2个参数是 说 每隔一定的时间执行一次 \/\/相关说明可以去jdk 帮助文档里面找 time.schedule(new TimerTask() { public...

java关于Timer计时器的问题求解
所以 最好 cancel 之后调用 purge 然后 置空timer timer =null;不调用timer.cancel(),timerTask线程会一直被执行,调用timer.cancel(),timerTask也会执行完当次之后结束。最好 if(timer!=null){ timer.cancel();timer.purge();timer=null;} ...

unity计时器,包括触发式
为了创建计时器并设置执行事件,可以调用插件的CreateSecondClock方法。例如,要创建一个每秒执行一次的计时器,可以按照以下步骤操作:首先,定义一个变量存储创建的计时器实例,如var clock1 = UnityTimerMgr.CreateSecondClock ((v) => { _textSecond.text = $"{v}秒";});这里,每当计时器触发事件...

有关Java语句执行时间(想优化代码), 求助高手!
图像处理,是用到了文件处理类吗,那么最好一定要缓存类,这样楼主 BufferedInputStream bis=new BufferedInputStream(FileInpuStream)这样,然后再操作用到缓存类速度可以快很多,楼主试试吧,如果实在还是没有提高把你相关的算法再check一下,看是否有性能问题 ...

java 毫秒倒计时器 想编写一个方法,其中就有一个参数 倒计时多长...
timeBuffer.append(mi < 10 ? ("00" + mi) : (mi < 100 ? ("0" + mi) : mi));return timeBuffer.toString();} Override public void paintComponent(Graphics page){ if (!begin) return;super.paintComponent(page);if (start >= MAXTIME){ lblTime.setText("Bomb!!!");return;}...

java 类似游戏中技能CD(冷却时间)的效果怎么实现?(内有详细说明)
技能类里添加一个上次触发时间的的属性,和一个CD间隔的属性。这样技能的实例触发时检测当前时间和上次触发的时间间隔是否大于CD时间就行了,大于就触发技能修改技能触发时间,小于就提示CD时间未到。

java 计时器timer.purge()什么叫从此计时器的任务队列中移除所有已取...
无法和前台的用户交互。Daemon程序一般都作为服务程序使用,等待客户端程序与它通信。我们也把运行的Daemon程序称作守护进程。Daemon()程序是一直运行的服务端程序;14.一直运行Timer()timer有方法purge()移除取消了的任务 为了完全停止Timer()函数,所以用的吧。我也是在校学生,也只理解这么emmmm ...

js计时器中setTimeout和setInterval的区别和使用
JavaScript 计时器 计时器类型:一次性计时器(setTimeout):仅在指定的延迟时间之后触发一次。间隔性触发计时器(setInterval):每隔一定的时间间隔就触发一次。计时器方法:一.计时器setInterval()在执行时,从载入页面后每隔指定的时间执行代码。语法:setInterval(代码,交互时间);参数说明:1. 代码:要调用...

相似回答