public static String getNextDay(String Sunday)
{

Calendar cal=Calendar.getInstance(Locale.CHINA);
DateFormat df = DateFormat.getDateInstance();
try
{
   Date pdate=df.parse(Sunday);
     cal.setTime(pdate);
   cal.add(Calendar.DATE,7);//the date of the last day of the week
   String lastDay=cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE);
return lastDay;
   }
   catch(Exception e)
   {
   return "";
   }
}
本方法在getNextDay("1990-04-14")时的返回值是1990-04-14没有发生变化
其它的时间都是对的,为什么???
有没有朋友遇到过!!

解决方案 »

  1.   

    不好意思写错了我
    上面的
    cal.add(Calendar.DATE,7);//the  date  of  the  last  day  of  the  week  
    应该是
    cal.add(Calendar.DATE,1);//the  date  of  the  last  day  of  the  week
      

  2.   

    不知道为什么
    看了GregorianCalendar类
    好像没什么错误,执行了cal.add(Calendar.DATE,1)之后的时间相差了23小时,而不是24小时
      

  3.   

    <%@ page import="java.util.Calendar"%>
    <%@ page import="java.text.DateFormat"%>
    <%@ page import="java.text.NumberFormat"%>
    <%@ page import="java.util.Date"%>
    <%@ page import="java.util.Locale"%>
    <%@ page import="ems.sch.printer"%><%!public static String getNextDay(String date)
    {
       Calendar cal=Calendar.getInstance(Locale.CHINA);
       DateFormat df = DateFormat.getDateInstance();
       try
      {
      Date pdate=df.parse(date);
        cal.setTime(pdate);
       cal.add(Calendar.DATE,1);
    String lastDay=cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)
                           +"-"  +cal.get(Calendar.DAY_OF_MONTH);
    return lastDay;
      }catch(Exception e){return e.getMessage();}
    }
    %><%
    out.print(getNextDay("1990-4-14"));
    %>
      

  4.   

    我返回的结果和 believefym(暮色,miss,迷失,miss) 一样是加了一天。
      

  5.   

    请问你们的OS系统是什么
    JDK是拿一个版本的,我在TOMCAT下面运行老是出现错误
      

  6.   

    在我的机上也是,用:
    String lastDay = cal.getTime().toString();
    结果是:Sat Apr 14 23:00:00 CST 1990只加了23小时
      

  7.   

    经过我从公元元年 也就是0000-01-01 算到5476-10-23 共记2000000天 这样的日期一共出现了
    还好在将来的几千年里没错
    something wrong ! today is :1927-12-31 yesterday is :1927-12-31
    something wrong ! today is :1940-6-2 yesterday is :1940-6-2
    something wrong ! today is :1941-3-15 yesterday is :1941-3-15
    something wrong ! today is :1986-5-3 yesterday is :1986-5-3
    something wrong ! today is :1987-4-11 yesterday is :1987-4-11
    something wrong ! today is :1988-4-9 yesterday is :1988-4-9
    something wrong ! today is :1989-4-15 yesterday is :1989-4-15
    something wrong ! today is :1990-4-14 yesterday is :1990-4-14
    something wrong ! today is :1991-4-13 yesterday is :1991-4-13
    no news is good news + today is:5476-10-23
      

  8.   

    各位老兄,大家说的确实不错,不过是在console或者Application模式下
    但是我在tomcat里面就是处错
    MY GOD HELP。。
      

  9.   

    结果是用       1.4.2_05-b04算了,我再用1.5版的JDK算算    String today="0000-01-01";
               String yesterday="";
                 for(int i=0;i<2000000;i++)
                 {    
                     yesterday=today;
                     today=getNextDay(today);
                     if(yesterday.equals(today)){
                         System.out.println("something wrong ! today is :"+today+" yesterday is :" +yesterday);
                         String day=today.substring(today.lastIndexOf("-")+1,today.length());
                         day=String.valueOf(Integer.valueOf(day).intValue()+1);
                         today=today.substring(0,today.lastIndexOf("-")+1)+day;
                     }
                 }
                 System.out.println("no news is good news + today is:"+today);
      

  10.   

    用1.5版的JDK算没错 直接输出
    C:\JBuilder2006\jdk1.5\bin\javaw -classpath "C:\Documents and Settings\Administrator.HUATENG-5F4325E\jbproject\Hiber\classes;D:\hibernate-3.1\hibernate3.jar;D:\hibernate-3.1\lib\ant-1.6.5.jar;D:\hibernate-3.1\lib\ant-antlr-1.6.5.jar;D:\hibernate-3.1\lib\ant-junit-1.6.5.jar;D:\hibernate-3.1\lib\ant-launcher-1.6.5.jar;D:\hibernate-3.1\lib\antlr-2.7.5H3.jar;D:\hibernate-3.1\lib\ant-swing-1.6.5.jar;D:\hibernate-3.1\lib\asm.jar;D:\hibernate-3.1\lib\asm-attrs.jar;D:\hibernate-3.1\lib\c3p0-0.9.0.jar;D:\hibernate-3.1\lib\cglib-2.1.2.jar;D:\hibernate-3.1\lib\cleanimports.jar;D:\hibernate-3.1\lib\commons-collections-2.1.1.jar;D:\hibernate-3.1\lib\commons-logging-1.0.4.jar;D:\hibernate-3.1\lib\concurrent-1.3.2.jar;D:\hibernate-3.1\lib\connector.jar;D:\hibernate-3.1\lib\dom4j-1.6.1.jar;D:\hibernate-3.1\lib\ehcache-1.1.jar;D:\hibernate-3.1\lib\jaas.jar;D:\hibernate-3.1\lib\jacc-1_0-fr.jar;D:\hibernate-3.1\lib\jaxen-1.1-beta-7.jar;D:\hibernate-3.1\lib\jboss-cache.jar;D:\hibernate-3.1\lib\jboss-common.jar;D:\hibernate-3.1\lib\jboss-jmx.jar;D:\hibernate-3.1\lib\jboss-system.jar;D:\hibernate-3.1\lib\jdbc2_0-stdext.jar;D:\hibernate-3.1\lib\jgroups-2.2.7.jar;D:\hibernate-3.1\lib\jta.jar;D:\hibernate-3.1\lib\junit-3.8.1.jar;D:\hibernate-3.1\lib\log4j-1.2.11.jar;D:\hibernate-3.1\lib\oscache-2.1.jar;D:\hibernate-3.1\lib\proxool-0.8.3.jar;D:\hibernate-3.1\lib\swarmcache-1.0rc2.jar;D:\hibernate-3.1\lib\versioncheck.jar;D:\hibernate-3.1\lib\xerces-2.6.2.jar;D:\hibernate-3.1\lib\xml-apis.jar;D:\hsqldb_r_demo\hsqldbr\lib\hsqldb.jar;D:\hsqldb_r_demo\hsqldbr\lib\javagroups-core.jar;C:\JBuilder2006\jdk1.5\lib\tools.jar;C:\JBuilder2006\jdk1.5\lib\dt.jar;C:\JBuilder2006\jdk1.5\lib\htmlconverter.jar;C:\JBuilder2006\jdk1.5\lib\jconsole.jar;C:\JBuilder2006\jdk1.5\jre\lib\plugin.jar;C:\JBuilder2006\jdk1.5\jre\lib\ext\sunpkcs11.jar;C:\JBuilder2006\jdk1.5\jre\lib\ext\dnsns.jar;C:\JBuilder2006\jdk1.5\jre\lib\ext\localedata.jar;C:\JBuilder2006\jdk1.5\jre\lib\ext\sunjce_provider.jar;C:\JBuilder2006\jdk1.5\jre\lib\jsse.jar;C:\JBuilder2006\jdk1.5\jre\lib\rt.jar;C:\JBuilder2006\jdk1.5\jre\lib\deploy.jar;C:\JBuilder2006\jdk1.5\jre\lib\im\thaiim.jar;C:\JBuilder2006\jdk1.5\jre\lib\im\indicim.jar;C:\JBuilder2006\jdk1.5\jre\lib\charsets.jar;C:\JBuilder2006\jdk1.5\jre\lib\javaws.jar;C:\JBuilder2006\jdk1.5\jre\lib\jce.jar"  EventManager 
    no news is good news + today is:5476-10-23
      

  11.   

    我没有用tomcat调。试Eclipse的作为Application运行的结果。
      

  12.   

    综上:这个问题应该是JDK版本的BUG,不过已经在新的JDK中被修复了。与平台无关