哦,打错了,应该是
一个是:已知一个java.sql.Date类型实例 aDate,现在如何计算aDate所在月的天数?
一个是:已知一个java.sql.Date类型实例 aDate,现在如何计算aDate所在月的天数?
解决方案 »
- 我们爱分享----在MyEclipse 中添加自己定义的文件模版
- javawweb开发技术
- hibernate的session问题
- html:link标签问题
- DataSource 与 TxDataSource的区别 ?
- 关于business delegate和facade的区别?
- 急问:cloudscape的问题!!!!!!!
- ApacheSOAP 的传输数据的大小的问题?
- 网络上,java,xml,soap 硕士论文写什么方向较好?
- 后台怎样获得前端ognl表达式中checkboxlist的值??
- #Struts 的 form 标签是如何和Formbean 交互的?
- hibernate查询问题
2. 更科学的方法(calendar1和calendar2分别是java.util.Calendar的实例):calendar1.setTime(mDate);
calendar2.setTime(aDate);
int days = calendar1.get(Calendar.DAY_OF_YEAR) - calendar2.get(Calendar.DAY_OF_YEAR);
java.util.Date d = new Date(2005,1,2);
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
c1.set(d.getYear(),d.getMonth(),1);
c2.set(d.getYear(),d.getMonth()+1,1);
System.out.println(c2.get(Calendar.DAY_OF_YEAR) - c1.get(Calendar.DAY_OF_YEAR));
//注:返回28,因为是2月
二:
方法一样的,计算出两个日期在今年为第几天,相减即可。
argEnd.trim().length() != 8) {
throw new IllegalArgumentException("argStart or argEnd length != 8");
}
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
start.setLenient(false);
end.setLenient(false); int startYear = Integer.parseInt(argStart.substring(0, 4));
int startMonth = Integer.parseInt(argStart.substring(4, 6));
int startDay = Integer.parseInt(argStart.substring(6, 8)); int endYear = Integer.parseInt(argEnd.substring(0, 4));
int endMonth = Integer.parseInt(argEnd.substring(4, 6));
int endDay = Integer.parseInt(argEnd.substring(6, 8)); start.set(startYear, startMonth - 1, startDay);
end.set(endYear, endMonth - 1, endDay); return getDayCount(start, end);
}
public static int getDayCount(Calendar argStart, Calendar argEnd) { long days = 0; Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance(); start.setLenient(false);
end.setLenient(false); start.set(Calendar.YEAR, argStart.get(Calendar.YEAR));
start.set(Calendar.MONTH, argStart.get(Calendar.MONTH));
start.set(Calendar.DATE, argStart.get(Calendar.DATE)); end.set(Calendar.YEAR, argEnd.get(Calendar.YEAR));
end.set(Calendar.MONTH, argEnd.get(Calendar.MONTH));
end.set(Calendar.DATE, argEnd.get(Calendar.DATE)); start.clear(Calendar.HOUR_OF_DAY);
start.clear(Calendar.HOUR);
start.clear(Calendar.MINUTE);
start.clear(Calendar.SECOND); end.clear(Calendar.HOUR_OF_DAY);
end.clear(Calendar.HOUR);
end.clear(Calendar.MINUTE);
end.clear(Calendar.SECOND); days = end.getTime().getTime() - start.getTime().getTime(); days = days / DATE_VALUE; return (int)days;
}