在线急等,关于日期的一个问题
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中的代码,应该是你页面传递进来的日期字符串有问题,你可以跟踪一下程序的执行过程。