重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
quartz定时任务数据可以保存到数据中。默认是在内存中,无法监控。
创新互联专注于道里企业网站建设,自适应网站建设,商城网站定制开发。道里网站建设公司,为道里等地区提供建站服务。全流程按需定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
最常用的做法是使用UNIX的cron直接执行Java程序。
并不需要在Java做的那么复杂。
Windows服务器也有类似于cron的任务管理功能,同理
---------------------------
Tomcat不是用来管理定时任务的,如果没有HTTP请求,Servlet是不会被执行的。
建议lz把定期执行的处理做成一个独立的Java程序,用cron执行。
如果不想写独立的Java程序,也可以用cron定期向Tomcat发送Http请求,但是,这样做的话注意程序处理时间不能太长,因为HTTP通信有timeout的制约。
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
/**
*
* @param date 生产日期
* @param mon 保质期(月)
* @return 到保质期之前两周的周末
* @throws ParseException
*/
public static String cuxiao(String date, String mon) throws ParseException{
Date produceDate = sdf.parse(date);
Calendar produceCalendar = Calendar.getInstance();
produceCalendar.setTime(produceDate);
//将produceCalendar设置为过期时间
int monthInt = Integer.parseInt(mon);
produceCalendar.add(Calendar.MONTH, monthInt);
//获得过期的那天是周几
//从api可知周日是1,周1是2,周六是7
int weekDay = produceCalendar.get(Calendar.DAY_OF_WEEK);
//获得最接近过期时间的周末(周六)
produceCalendar.add(Calendar.DATE, 0-weekDay);
//再将该日期减去一周(7天),就是想要的日期
produceCalendar.add(Calendar.DATE, -7);
return sdf.format(produceCalendar.getTime());
}
input:cuxiao("20121202", "4")
output:20130323
课表数据时存储于数据库中的吗?
/**
* 获取一周的时间集合(从周一到周日)
* @param weekNum ;-1:上周;0:本周;1:下周
*/
public static ListDate getWeekDates(int weekNum){
ListDate list = new ArrayListDate();
Calendar cal = Calendar.getInstance();
// 获取指定下几个星期
cal.add(Calendar.DAY_OF_WEEK, weekNum * 7);
cal.setFirstDayOfWeek(Calendar.MONDAY);
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
list.add(cal.getTime());
for(int i = 0;i 6;i++){
cal.add(Calendar.DAY_OF_WEEK, 1);
list.add(cal.getTime());
}
return list;
}
这个是获取这一周时间的代码 ,之后用下面的代码获取周一到周日的日期
ListDate ds = DateUtil.getNowWeekDates(weekNum);
ds.get(0)//周一
ds.get(6)//周日
用这两个时间到数据库中进行范围查询,之后的你应该明白了吧
参考
int custNO;//客户会员号(说明:customer指客户)
System.out.println ("请输入四位会员卡号:");//输入会员卡号
Scanner input = new Scanner(System.in);
custNO = input.nextInt();
if (custNo 1000){
//获得每位数字(a/b是除a%b是取余)
int gewei = custNO % 10 ; //分解获得个位数 1001 %10 ==1
int shiwei = custNO /10 %10 ; //分解获得十位数 //1234 /10 % 10 = 123 %10 =3 (1234 /10 = 123.4 % 10 )
int baiwei = custNO /100 %10 ;//分解获得百位数
int qianwei = custNO /1000 ; //分解获得千位数
}
//计算数字之和
int sum = gewei + shiwei + baiwei + qianwei ;
System.out.println ("会员卡号"+custNO +"各位之和:" + sum );