package com.lyz.util;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
/**
* java定时任务,每天定时执行任务
* @author liuyazhuang
*
*/
public class TimerManager {
//时间间隔
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
public TimerManager() {
Calendar calendar = Calendar.getInstance();
/*** 定制每日2:00执行方法 ***/
calendar.set(Calendar.HOUR_OF_DAY, 16);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
Date date=calendar.getTime(); //第一次执行定时任务的时间
System.out.println(date);
System.out.println("before 方法比较:"+date.before(new Date()));
//如果第一次执行定时任务的时间 小于 当前的时间
//此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。循环执行的周期则以当前时间为准
if (date.before(new Date())) {
date = this.addDay(date, 1);
System.out.println(date);
}
Timer timer = new Timer();
LyzTimerTask task = new LyzTimerTask();
//安排指定的任务在指定的时间开始进行重复的固定延迟执行。
timer.schedule(task,date,PERIOD_DAY);
}
// 增加或减少天数
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}
}
package com.lyz.util;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimerTask;
/**
* 在 TimerManager 这个类里面,大家一定要注意 时间点的问题。如果你设定在凌晨2点执行任务。但你是在2点以后
*发布的程序或是重启过服务,那这样的情况下,任务会立即执行,而不是等到第二天的凌晨2点执行。为了,避免这种情况
*发生,只能判断一下,如果发布或重启服务的时间晚于定时执行任务的时间,就在此基础上加一天。
* @author liuyazhuang
*
*/
public class LyzTimerTask extends TimerTask {
private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public void run() {
try {
//在这里写你要执行的内容
System.out.println("执行当前时间"+formatter.format(Calendar.getInstance().getTime()));
} catch (Exception e) {
System.out.println("-------------解析信息发生异常--------------");
}
}
}
package com.lyz.util;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class LyzListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent sce) {
new TimerManager();
}
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
}
}
<!--LyzListener 监听器-->
<listener>
<listener-class>com.lyz.util.LyzListener</listener-class>
</listener>
说明:环境:ubuntu12.04基于QT4的linux串口助手近期网上很火的qt编写串口通信程序全程图文详解收到了网上的疯狂转载,上面的链接也不确定是不是原创,不过开源的东西不必追究那个原创了。按照这个教程。调试了几天一直没有结果,最后通过一句一句的分析每天语句终于可以收到数据。在此将本人遇到的纠结几天的问题写于此。首先,大致按照以上教程先写出了调试程序:-----------
作者:hyzhang时间:2017-10-11描述:自动生成li标签 并把文本框的值赋给li标签-->window.onload =function(){var inpt = document.getElementById("txt");var oUl =document.getElementById("ull");var btn1 = d
GCC编译时的静态库依赖次顺问题.pdf 相关博文1:http://blog.chinaunix.net/uid-20682147-id-76330.html相关博文:http://blog.chinaunix.net/uid-20682147-id-5096676.html假设有如三个源代码文件: ...
为什么80%的码农都做不了架构师?>>> ...
How can I detect either numbers or letters in a string? I am aware you use the ASCII codes, but what functions take advantage of them?解决方案Check if string is positive digit (integer) and alphabetYou ma...
http://zip.nvp.com.tw/forum.php?mod=viewthread&tid=249&extra=page%3D6Device Discovery:定義 GigE 相機在網路連結上如何取得 IP 位址及如何被識別。
/** * Tooast相关工具类 */public class ToastUtils { private static final int COLOR_DEFAULT = 0xFEFFFFFF; private static final String NULL = "null"; private static IToast iToast; private static int sGravity = -1; private static int sXOffse
http://www.android.com/wear/
很多人遇到了路由高亮的问题。问为什么页面一刷新进来当前页就不不高。刷新的时候也没有记录状态。其实就是路由没有记录。。。我们想要实现的效果是:1、这里用的是 Element UI 。先把菜单封装。请看上面的文章:https://blog.csdn.net/u013592575/article/details/1034938652、element UI 中 NavMenu 有一个 d...
出现这个情况是因为非线性约束函数发生了错误,编译时失败比如,这里第12行的t(i,j)=t(i,j)/(((co(i)-co(j))^2+(si(i)-si(j))^2);,多了一个‘)’,改为` t(i,j)=t(i,j)/((co(i)-co(j))2+(si(i)-si(j))2);后即可正常运行...
基于Bert的中文情感分析代码及分析众所周知,Google 前段时间开源了他们的 BERT – BidirectionalEncoderRepresentations fromTransformers 模型,使用多头注意力和位置嵌入,一举打破自然语言处理领域11个不同问题的最好记录。NLP界开启一个全新的时代,利用Bert做NLP的任务也是取得很好的效果,本文利用微调Bert模型做中文情感分析,...
timeshift