读书人

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

发布时间: 2014-01-17 00:06:00 作者: rapoo

问一个关于日期类问题
本帖最后由 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吧

读书人网 >J2EE开发

热点推荐