首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

问一个关于日期类有关问题

2014-01-17 
问一个关于日期类问题本帖最后由 prince_yu 于 2014-01-09 18:12:58 编辑问一个关于日期类的问题:输入 201

问一个关于日期类问题
本帖最后由 prince_yu 于 2014-01-09 18:12:58 编辑 问一个关于日期类的问题:

输入 2014-01-1  代表2014年1月的第一周
输出 2014-01-01-->2014-01-05

输入 2014-01-2  代表2014年1月的第二周
输出 2014-01-06-->2014-01-12
...
...

输入 2014-01-5  代表2014年1月的第五周
输出 2014-01-27-->2014-01-31

这个怎么弄?
calendar实在不明白..

求代码..谢谢大神
[解决办法]



public static void main(String[] args)throws Exception{
        String dateStr = "2014-01-2";
        //年月周
        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-w");
        Calendar cal = Calendar.getInstance();
        cal.setTime(sdf.parse(dateStr));
        //年月日
        SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY-MM-dd");
        //一周七天
        for (int i=0;i<7;i++){
        //国际标准周天是一个星期的第一天,为了适应国情把周一定为一个星期的第一天
        cal.add(Calendar.DAY_OF_WEEK, 1);
        System.out.println(sdf2.format(cal.getTime()));
        }



[解决办法]
引用:
Quote: 引用:


public static void main(String[] args)throws Exception{
        String dateStr = "2014-01-2";
        //年月周
        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-w");
        Calendar cal = Calendar.getInstance();
        cal.setTime(sdf.parse(dateStr));
        //年月日
        SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY-MM-dd");

        //国际标准的周天,默认第一天就是周天
        System.out.println(sdf2.format(cal.getTime()));

        //中国国情的周天,只要加一个星期就可以了。
        cal.add(Calendar.DAY_OF_WEEK, 7);
        System.out.println(sdf2.format(cal.getTime()));

        //因为前面加了7天,所以这里减七天回到2014年1月5号,如果没有加7天,下面这行可供可省略
        cal.add(Calendar.DAY_OF_WEEK, -7);
        
        //周一
    cal.add(Calendar.DAY_OF_WEEK,1);
    System.out.println(sdf2.format(cal.getTime()));        
        
}


您好, 1月份的确实没问题, 当我把dateStr换成2014-06-1, 还是显示1月的日期.
是怎么回事?


因为new SimpleDateFormat("YYYY-MM-w")里面的w表示的是一年中的第几周,而不是指定月的第几周
[解决办法]
引用:
Quote: 引用:



public static void main(String[] args)throws Exception{
        String dateStr = "2014-01-2";
        //年月周
        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-w");
        Calendar cal = Calendar.getInstance();
        cal.setTime(sdf.parse(dateStr));
        //年月日
        SimpleDateFormat sdf2 = new SimpleDateFormat("YYYY-MM-dd");
        //一周七天
        for (int i=0;i<7;i++){
        //国际标准周天是一个星期的第一天,为了适应国情把周一定为一个星期的第一天


        cal.add(Calendar.DAY_OF_WEEK, 1);
        System.out.println(sdf2.format(cal.getTime()));
        }




太谢谢你了.离最后的效果只差了一步.  不知道我只输出周一和周日的日期怎么改?
还有,for循环中的i没有在下面用到,那它是怎么输出周一到周日的日期的?求指点..


cal.add(Calendar.DAY_OF_WEEK, 1);后面的1每次循环日期就会加1吧

热点排行