(紧急求助)如何取得一个java.sql.Date类型当月的天数和计算两个Date相差的天数呢? 哦,打错了,应该是一个是:已知一个java.sql.Date类型实例 aDate,现在如何计算aDate所在月的天数? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 (mDate.getTime()-aDate.getTime())/(1000*60*60*24) 1. 得到当月的最后一天的日期即可。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月二:方法一样的,计算出两个日期在今年为第几天,相减即可。 public static int getDayCount(String argStart, String argEnd) { if (argStart.trim().length() != 8 || 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; } private static final long DATE_VALUE = 86400000; 启动tomcat显示成功,但是访问tomcat首页是404错误页 webservice 与 EJB的区别 ant spring 配置问题 关于一个三层架构系统的日志管理部分开发? J2SE-->J2EE,又到了选择的路口,下一步不知道该怎么走了,请过来人指个路.先谢谢了. web开发中内存泄露问题探讨 用jbuilder做的jsp,如何讲网址中的端口号8080去掉,高分求助,在线等,多谢! fiddler跟踪请求,请求一直处于下载中,无返回,后台程序已经执行完 求一条汇总的sql语句,谢谢 #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;
}