为什么2009年1月1日的Calendar.DAY_OF_YEAR居然是364?直到1月4日才恢复。
d1 = dateFormat.parse(dateStart);//d1=2009-01-01
Calendar c1 = Calendar.getInstance();
c1.setTime(d1);
c1.get(Calendar.DAY_OF_YEAR);//结果居然是364
请高手指点迷津。
d1 = dateFormat.parse(dateStart);//d1=2009-01-01
Calendar c1 = Calendar.getInstance();
c1.setTime(d1);
c1.get(Calendar.DAY_OF_YEAR);//结果居然是364
请高手指点迷津。
解决方案 »
- 跪求高手解决,连接sql 2005 eclipse
- 怎样直连jdbc?hibernate+spring
- 页面验证图片重复加载问题?
- 急!关于iReport换行打印问题
- 请问哪里有core java中文版下载
- 问问题,送分啦
- spring mvc 中页面跳转的问题
- 怎么查找数据库中符合条件的最大ID的一条记录!?
- resin 中文问题
- 如何在jsp页面调用com组件?
- JA VA上传多个文件问题,在上传页面表单里有文本和文件,用servlet读取,请教各位大虾如何处理?
- 在启动tomcat时出现Action class [com.WebJdbc.Action.LoginAction] not found - action - file:/C:/Tomcat/webapps/struts2/WEB-INF/classes/s
public class TestDate {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
@Test
public void test1() throws Exception {
String dateStart = "2009-01-01";
Date d1 = dateFormat.parse(dateStart);//d1=2009-01-01
Calendar c1 = Calendar.getInstance();
c1.setTime(d1);
int y = c1.get(Calendar.DAY_OF_YEAR);
System.out.println("Day of year:" + y + " of " + d1);
}
}
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = null;
Date d2 = null;
try{
d1 = dateFormat.parse(dateStart);
d2 = dateFormat.parse(dateEnd);
}catch(ParseException ex){
System.out.print(ex);
}
System.out.print("$$$$$$$$$$$$"+dateStart+"$$$$$$$$$");
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.setTime(d1);
c2.setTime(d2);
if(c1.after(c2)){
c1 = c2;
c2.setTime(d1);
}
int dayOfWeek = c1.get(Calendar.DAY_OF_WEEK) - 1;//星期
if(dayOfWeek > 1){
c1.add(Calendar.DAY_OF_MONTH, -(dayOfWeek - 1));
dayOfWeek = 1;
}
int betweenDays = c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR);//相隔天数
System.out.print("#######"+c2.get(Calendar.DAY_OF_YEAR)+"########");
System.out.print("#######"+c1.get(Calendar.DAY_OF_YEAR)+"########");
这是日志里打印出来的信息:
$$$$$$$$$$$$2009-01-03$$$$$$$$$#######31###############364########2008-12-22 21:03:47,168 DEBUGc2是正常的,就是不知道为什么c1在1月3日前都是364,设成1月4就会变回4了
int dayOfWeek = c1.get(Calendar.DAY_OF_WEEK) - 1;//星期
if(dayOfWeek > 1){
c1.add(Calendar.DAY_OF_MONTH, -(dayOfWeek - 1));
dayOfWeek = 1;
}