public class TestDate {
private static int ii = 0;
private static Calendar calendar;
public static void main(String[] args) {
if (ii == 0) {
calendar = Calendar.getInstance();
ii = calendar.DAY_OF_MONTH;
}
calendar.add(ii, -1);
Date Days = calendar.getTime();
SimpleDateFormat DateTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String sDateTime = DateTime.format(Days);
ii = calendar.get(calendar.DAY_OF_MONTH);
//System.out.println(calendar.get(calendar.DAY_OF_MONTH));
System.out.println(sDateTime);
}
}
怎么使每运行一次当前日期减少一天????
private static int ii = 0;
private static Calendar calendar;
public static void main(String[] args) {
if (ii == 0) {
calendar = Calendar.getInstance();
ii = calendar.DAY_OF_MONTH;
}
calendar.add(ii, -1);
Date Days = calendar.getTime();
SimpleDateFormat DateTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String sDateTime = DateTime.format(Days);
ii = calendar.get(calendar.DAY_OF_MONTH);
//System.out.println(calendar.get(calendar.DAY_OF_MONTH));
System.out.println(sDateTime);
}
}
怎么使每运行一次当前日期减少一天????
用calendar.set方法试试。
保存到数据库?
要不你有个长期不会关闭的JVM,然后再用一个类来保存,可当JVM死了以后,你得手动设置日期,所以还是保存到数据库吧
保存到一个类里,然后序列化,不过序列化也是以文件形式来保存啊要是文件和数据库都不能用,就只能放到内存,就是JVM,可JVM重启就完了
晕。那就直接把那值丢到application去,然后通过一个同步的方法去更新日期,那不就得了?
可WEB一重启,那日期又会设回初始值了
你可以把1弄成变量(++后在set进去),然后存变量就好了,比存日期应该简单些吧;
if(session.get("cutdate")!=null){
act_date=(String) session.get("cutdate");
}
ymd=DateFormat.nDaysAfterOneDateString(act_date,-1);
session.put("cutdate", ymd);// 给定一个日期型字符串,返回加减n天后的日期型字符串
public static String nDaysAfterOneDateString(String basicDate, int n) {
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日");
Date tmpDate = null;
try {
tmpDate = df.parse(basicDate);
} catch (Exception e) {
// 日期型字符串格式错误
}
long nDay = (tmpDate.getTime() / (24 * 60 * 60 * 1000) + 1 + n)* (24 * 60 * 60 * 1000);
tmpDate.setTime(nDay); return df.format(tmpDate);
}