十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
给你一个思路咯,,如果用在提示用在jsp页面的推荐你用js来实现,当页面加载的时候就执行一个判断,判断需要提醒是时间是不是今天,如果汪陆燃是今天就让执行提醒的js代码进入执行状态困虚 即:window.setTimeout(fun,s) 方法,s (等待悉孝时间) 的值需要计算的,假如是10分钟后执行 那们s的值就是 10*1000 以此类推, 如果提醒的时间不是今天那 setTimeout 这个方法就不要执行 这样说部知道你能理解不?
站在用户的角度思考问题,与客户深入沟通,找到岗巴网站设计与岗巴网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、成都做网站、企业官网、英文网站、手机端网站、网站推广、申请域名、虚拟主机、企业邮箱。业务覆盖岗巴地区。
有个线程每隔一定时间扫描是否有任务需要提醒。(如有3个任务,时间分别为T1,T2,T3)
则在线程中每个一定的时间取出当前的系统时间,然后根T1,T2,T3对比,看是否当前时间等于T1,T2,T3的一个,有就提醒。
public class RemindThread implements Runnable {
public void run() {
while (true) {
Calendar c= Calendar.getInstance();
// 循环任务列表
for (int i=0;itasks.size();i++) {
Task t = (Task)tasks.get(i);
// 你可以在Task中增加一个方法,判断任务是否等于当前系统时间。参数为当前系统时间橡渣,你将Calendar参数传凯销进去。比如梁孙悄方法是public boolean isStart(Calendar c) {...},在方法中
// 获取年,月,日,时,分,秒
// 请使用Calendar的get(int field)方法获取,如获取年:c.get(Calendar.YEAR);
// 根你的任务时间对比。
// 那么这里你就可以这样。
if (task.isStart(c)) {
task.remind(); // 调用任务的提醒方法。
}
Thread.sleep(1000); // 1s检测1次。
}
}
}
ps:未处理异常。
}
用数据库吧
首先,保存事件的表蔽岩mem
create table mem(
mid varchar(10) not null prmary key,
mdate date not null,
mem varchar(255),
userid varchar(20) not null
)
-- 如果是简单的单用户的话可以不要这个。
-- 然后用户登录的时候你就可以使用select mem from mem where userid='当前用户' and m_date='今天的日期'就可以盯并镇查询出这个用户添加的凯粗日程提醒了。
先写这么一个一个类。用来做你要做的事盯正情竖则凳
import java.util.TimerTask;
/**
* @author songml
*
*/
public class ReportGenerator extends TimerTask {
public void run() {
System.out.println("doing something start");
}
}
再写一个定义时间的类。用来设定时间,一旦到了设定时间,调用上一个类
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
class MainApplication {
public static void main(String[] args) {
Timer timer = new Timer();
Calendar calendar = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//设余旅定当月的14号的上午10点23分11秒启动
calendar.set(Calendar.DATE, 14);
calendar.set(Calendar.HOUR, 10);
calendar.set(Calendar.MINUTE, 23);
calendar.set(Calendar.SECOND, 11);
//格式化时间
System.out.println("程序开始的时间是:"+df.format(calendar.getTime()));
timer.schedule(new ReportGenerator(), // TimerTask
calendar.getTime(), // Timer
1000*60*60*24);// delay
}
}
//注意如果要设定月份的话,要减一
//比如设定11月的话,用下面的代码
//calendar.set(Calendar.MONTH, 11-1);