求两个日期的间隔月数,并对间隔中的日期进行循环处理 各位高手们好,假设我现在有两个日期,比如一个是“2009-04”,一个是"2010-05",这两个日期都是用户输入的,有没有好的方法可以获得这两个日期的间隔月数,并可以对日期进行循环处理啊。比如日期如上,我要循环处理2009-04、2009-05、2009-09........一直到2010-05各月份的一些数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); String str1 ="2009-04"; String str2 ="2010-05"; Date date1 = sf.parse(str1+"-01"); Date date2 = sf.parse(str2+"-01"); Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal1.setTime(date1); cal2.setTime(date2);/* while(cal2.compareTo(cal1)>=0) { cal1.add(Calendar.DAY_OF_MONTH, 1); //增加1天 System.out.println(sf.format(cal1.getTime())); }*//* while(cal2.compareTo(cal1)>0) { cal1.add(Calendar.MONTH, 1); //增加1月 System.out.println(sf.format(cal1.getTime())); }*/笨办法,得到月的总数,可以cal.getActualMaximum(Calendar.DAY_OF_MONTH)取每个月的最大天数,再循环。注意下边界值. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM"); java.util.Date now = df.parse("2009-04"); java.util.Date date = df.parse("2010-05"); long passtime = date.getTime() - now.getTime(); long month = passtime / (24 * 60 * 60 * 1000)/30; System.out.println("" + month + "月"); public int getMonthNum(Date startTime,Date endTime) { Calendar cal1=Calendar.getInstance(); cal1.setTime(startTime); Calendar cal2=Calendar.getInstance(); cal2.setTime(endTime); return countMonth = (cal2.get(1)-cal1.get(1))*12+(cal2.get(2)-cal1.get(2)); } java处理日期感觉比。net要麻烦些~我观望下前辈的代码 菜鸟请教socket编程问题 一个关于java applet 中的AudioClip类的问题 java中如何获得当时的时间? 看看这个MM,还会动噢。 java类与对象的问题 为何这个程序输入的三个数据只能是n1<n1<n3才可以比较,否则就不可以比较大小;急 一个白痴级的问题 [寻]Log类的编写思路以及例子 一个奇怪的JAVA中文问题!请各位大虾指明!!! RMI服务端和客户端在同一太机器上成功,在不同的机器上不成功 今天学习线程 其中 守护线程daemon有什么用处? 求高手 详解 HashSet的扩容机制
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String str1 ="2009-04";
String str2 ="2010-05";
Date date1 = sf.parse(str1+"-01");
Date date2 = sf.parse(str2+"-01");
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);/* while(cal2.compareTo(cal1)>=0) {
cal1.add(Calendar.DAY_OF_MONTH, 1); //增加1天
System.out.println(sf.format(cal1.getTime()));
}*/
/* while(cal2.compareTo(cal1)>0) {
cal1.add(Calendar.MONTH, 1); //增加1月
System.out.println(sf.format(cal1.getTime()));
}*/笨办法,得到月的总数,可以cal.getActualMaximum(Calendar.DAY_OF_MONTH)取每个月的最大天数,再循环。
注意下边界值.
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM");
java.util.Date now = df.parse("2009-04");
java.util.Date date = df.parse("2010-05");
long passtime = date.getTime() - now.getTime();
long month = passtime / (24 * 60 * 60 * 1000)/30;
System.out.println("" + month + "月");
Calendar cal1=Calendar.getInstance();
cal1.setTime(startTime);
Calendar cal2=Calendar.getInstance();
cal2.setTime(endTime);
return countMonth = (cal2.get(1)-cal1.get(1))*12+(cal2.get(2)-cal1.get(2));
}