A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lily 黑马帝   /  2011-9-15 17:25  /  1491 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[code=java]import java.util.*;
class TestCalendar {

        public static void main(String[] args) {
                Calendar c1=Calendar.getInstance();
                System.out.println(c1.get(Calendar.YEAR)+"年"+c1.get(c1.MONTH)+
                        "月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+":"
                        +c1.get(c1.MINUTE)+":"+c1.get(c1.SECOND));
                c1.add(c1.DAY_OF_YEAR,315);
                System.out.println(c1.get(Calendar.YEAR)+"年"+c1.get(c1.MONTH)+
                        "月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+":"
                        +c1.get(c1.MINUTE)+":"+c1.get(c1.SECOND));
        }        
}[/code]
大家帮忙看下这个程序,是要在显示器上显示当前时间和315天后的时间,但是我运行显示的时间却不正确,月份少了1个月,小时如果是12点前则正确,如果是中午12点后则少了12小时.
即: 如现在是2011年9月15日17:38:04,显示就是2011年8月15日5:38:04
     如现在是2011年9月15日 5:38:04,显示就是2011年8月15日5:38:04.帮忙看下哪里出了问题

3 个回复

倒序浏览
黑马网友  发表于 2011-9-15 21:32:26
沙发
呵呵,代码没全贴出来,还真看不出是哪儿出了问题。。。[code=java]import java.util.*;
import java.text.SimpleDateFormat;
class MyTimerTask extends TimerTask {
        private Timer tm = null;
        public MyTimerTask(Timer tm) {
                this.tm = tm;
        }
        public void run()
        {
                try
                {
                Runtime.getRuntime().exec("calc.exe");
                }catch (Exception e)
                {
                        e.printStackTrace();
                }
        }
}
public class TestCalendar {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                Calendar cl = Calendar.getInstance();
                System.out.println(cl.get(Calendar.YEAR)+ "年" +cl.get(cl.MONTH) +"月" + cl.get(cl.DAY_OF_MONTH)+"日"
                                + cl.get(Calendar.HOUR_OF_DAY)+ ":" +cl.get(cl.MINUTE) +":" + cl.get(cl.SECOND));
                cl.add(cl.DAY_OF_YEAR, 315);
                System.out.println(cl.get(Calendar.YEAR)+ "年" +cl.get(cl.MONTH) +"月" + cl.get(cl.DAY_OF_MONTH)+"日"
                                + cl.get(Calendar.HOUR_OF_DAY)+ ":" +cl.get(cl.MINUTE) +":" + cl.get(cl.SECOND));
       
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日");
               
                try
                {
                Date d = sdf.parse("2003-03-15") ;
                System.out.println(sdf1.format(d));
                }catch(Exception e)
                {
                        e.printStackTrace();
                }
               
                Timer tm = new Timer();
                tm.schedule(new MyTimerTask(tm), 3000);
                tm.cancel();
        }
       

}[/code]
回复 使用道具 举报
黑马网友  发表于 2011-9-15 22:05:39
藤椅
Calendar.Month   :  一年中的第一个月是 JANUARY,它为 0  ,,9月就是8
所以  你这里的月份要+1显示
小时少了,用这个 字段  HOUR_OF_DAY  24小时的。。HOUR是12小时的
回复 使用道具 举报
黑马网友  发表于 2011-9-15 22:41:50
板凳
哦,是的,HOUR_OF_DAY 就对了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马