在线急等,关于日期的一个问题
package com.mrpsoft.common;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.StringTokenizer;
public class MyDate {
public static String getDate(String spDate, int dayId){
long baseTime;
StringTokenizer st = new StringTokenizer(spDate, "- ");
try{
int year = Integer.parseInt(st.nextToken());
int month = Integer.parseInt(st.nextToken());
int day = Integer.parseInt(st.nextToken());
Calendar calCur = new GregorianCalendar();
calCur.set(Calendar.YEAR, year);
calCur.set(Calendar.MONTH, month-1);
calCur.set(Calendar.DAY_OF_MONTH, day);
Date sp = calCur.getTime();
baseTime = sp.getTime();
//System.out.println(baseTime);
//System.out.println(System.currentTimeMillis());
}catch(Exception e){
System.err.println( "指定的日期格式不正确。 ");
baseTime = System.currentTimeMillis();
}
int daymillis = 24*60*60*1000;
Date myDate = new Date(baseTime+daymillis*(dayId-1));
Calendar calCur = Calendar.getInstance();
calCur.setTime(myDate);
int day = calCur.get(Calendar.DAY_OF_MONTH);
calCur.add(Calendar.MONTH,1);
int month = calCur.get(Calendar.MONTH);
String date = month+ "月 "+day+ "日 ";
System.out.println(date);
return date;
}
/**
* @param args
*/
public static void main(String[] args) {
getDate( "2007-2-28 ", 3); //这里放你算的第几天,返回就是当前日期的后几天
}
}
以上页面编译后出现几个问题,1、是取不到jsp页面赋予的日期值,在页面上总是按照当前系统时间显示;2、应该是以当前时间为准向后递增,可却取当前日期的前一天向后递增!请高手帮手
------解决方案--------------------按照你提供的程序我运行了一下,运行结果:3月2号。
你想返回的是:3月3号?
如果是那样的话:
Date myDate = new Date(baseTime+daymillis*(dayId-1));改为Date myDate = new Date(baseTime+daymillis*(dayId));就可以了啊。
至于你说的第一个问题应该是你下面的这段程序发生了异常:
int year = Integer.parseInt(st.nextToken());
int month = Integer.parseInt(st.nextToken());
int day = Integer.parseInt(st.nextToken());
Calendar calCur = new GregorianCalendar();
calCur.set(Calendar.YEAR, year);
calCur.set(Calendar.MONTH, month-1);
calCur.set(Calendar.DAY_OF_MONTH, day);
Date sp = calCur.getTime();
baseTime = sp.getTime();
//System.out.println(baseTime);
//System.out.println(System.currentTimeMillis());
程序执行了catch中的代码,应该是你页面传递进来的日期字符串有问题,你可以跟踪一下程序的执行过程。