java生日提醒_生日提醒功能

这是一个使用GWT(Google Web Toolkit)作为前端展示页面,Grails+Java作为后台服务的生日提醒系统。前端定时器每小时运行一次,检查当前是否为9点,如果是则从后台获取当天生日的用户列表并显示提醒。后台服务通过SQL查询找到当月当日出生的用户,并返回其名字。原本尝试使用TimerTask进行定时提醒,但未成功,最终改为在后台直接处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是前台前台展示页面(smartGwt):

//生日提醒

Timer timer=new Timer(){

public void run(){

mainService.Timing(null,new AsyncCallback(){

public void onFailure(Throwable caught) {

}

public void onSuccess(Object result) {

String str=(String)result;

Date day=new Date();

int today=day.getHours();

String strc=today+"";

if(!str.trim().equals("")&&strc.equals("9"))

SC.say("今天是 "+str+" 的生日");

}

});

}

};

timer.scheduleRepeating(1000*3600*1); //每隔1小时运行一次

timer.run();

这是后太的service(grails+java):

//定时提醒

public String Timing(List lists){

/**

Timer time=new Timer();

//设定 当天的9点 提醒生日

Calendar data=Calendar.getInstance();

//data.set(Calendar.HOUR,13);

// data.set(Calendar.MINUTE,0);

//data.set(Calendar.SECOND,15);

MyTimingService myTiming=new MyTimingService();

if(lists.equals(null))

{time.schedule(myTiming,1000*15,10*1000);

return null;

}

else

{

String str=null;

for(int i=0;i

UserArchives ua=lists.get(i);

User u=User.findById(ua.getUser().getId());

str +=u.getName();

}

System.out.println(str);

return str;

}*/

String str="";

System.out.println("运行生日提醒方法了");

List BirthList=UserArchives.findAll( " from UserArchives where MONTH(dateOfBirth)=MONTH(CurDATE()) AND DAY(dateOfBirth)=DAY(CurDATE())");

for(int i=0;i

UserArchives ua=BirthList.get(i);

User u=User.findById(ua.getUser().getId());

str +=u.getName()+" ,";

}

return str;

}

这个是开始写的 代码 发现没有办法传到前台 后来就放弃了:

package com.tservice.XZRS;

import java.util.List;

import com.tservice.XZRS.RealService;

import javax.servlet.http.HttpSession;

import org.springframework.web.context.request.RequestContextHolder;

class MyTimingService extends TimerTask{

String userName;

static transactional = true

public void run() {

System.out.println("运行生日提醒方法了");

List BirthList=UserArchives.findAll( " from UserArchives where MONTH(dateOfBirth)=MONTH(CurDATE()) AND DAY(dateOfBirth)=DAY(CurDATE())");

System.out.println(BirthList.size());

if(BirthList.size()!=0)

{

System.out.println("11111");

RealService real=new RealService();

real.Timing(BirthList);

}

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-03-29 15:47

浏览 709

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值