2个日期间隔算法,每隔多少个月后的第几天
2010-08-27 14:50
267 查看
计算2个日期之间 每隔N个月后的第N天 得到所有的天数。 如下:private static String date1="2010-01-01"; private static String date2="2014-09-01"; 2个日期之间每隔5个月的第5天输出为: 2010-06-06 2010-11-11 2011-04-16 2011-09-21 2012-02-26 2012-07-31 2013-01-05 2013-06-10 2013-11-15 -------------------------------------------------------code------------------------------------------------ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; public class DateTemp { private static String date1="2010-01-01"; private static String date2="2014-09-01"; private static String tempMoth="5"; private static String tempDay="5"; private static String FORMAT_DAY="yyyy-MM-dd"; public static void main(String [] args){ SimpleDateFormat formt=new SimpleDateFormat("yyyy-MM-dd"); try { int tempMothInt=Integer.parseInt(tempMoth); int tempDayInt=Integer.parseInt(tempDay); Date d1=formt.parse(date1); Date d2=formt.parse(date2); Calendar startCal = new GregorianCalendar(); Calendar dealCal = new GregorianCalendar(); startCal.setTime(d1); dealCal.setTime(d2); //计算2个日期之间相差的月份 共多少个月 int diffMonth = (dealCal.get(Calendar.YEAR) - startCal.get(Calendar.YEAR)) * 12 + dealCal.get(Calendar.MONTH) - startCal.get(Calendar.MONTH) + 1; String temp=""; //相差的月份除以每隔多少个月取整就是要循环的次数 for(int i=0;i<diffMonth/tempMothInt;i++){ if(i==0){ //得到相加月份和天数后的日期,如果是第一次循环传入参数日期 temp=getAfterMoth(d1,tempMothInt,tempDayInt); System.out.println(temp); }else{ //如果不是第一次循环则得到上一次相加后的日期当参数传入得到相加月份和天数 Date date=formt.parse(temp); temp=getAfterMoth(date,tempMothInt,tempDayInt); System.out.println(temp); } } } catch (ParseException e) { e.printStackTrace(); } } //将一个日期相加月份和天数 public static String getAfterMoth(Date date,int moth,int days) { SimpleDateFormat df = new SimpleDateFormat(FORMAT_DAY); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); //在月份上加moth个月 calendar.set(Calendar.MONTH,calendar.get(Calendar.MONTH) +moth); //在天数上加days个天。 calendar.set(Calendar.DAY_OF_YEAR,calendar.get(Calendar.DAY_OF_YEAR) + days); return df.format(calendar.getTime()); } } |
相关文章推荐
- 如何用java计算两个日期之间间隔多少天
- 取得2个日期之间间隔的天数
- Java中计算两个日期间隔多少天
- C#比较2个日期之间间隔不能超过一个月
- Android学习之计算2个日期之间有多少年月日
- asp.net 2个日期之间的整月数的算法
- 算法:输入两个日期,求之间相差了多少天
- 2个日期之间有多少天
- c# TimeSpan 计算2个日期间隔的天数
- 计算两个日期之间所间隔天数的快速算法
- C语言计算日期间隔天数的经典算法解析
- asp.net 2个日期之间的整月数的算法
- 设计一个程序输入两个日期计算相隔多少天,或计算一个日期加上间隔后的日期。
- [原] Excel中计算2个日期间的时间间隔
- 根据出生日期得到是该年的第几天,带一点算法,不用一个月份一个月份的加
- js比较两个日期大小,2计算2个日期之间间隔天数
- JS比较2个日期间隔的示例代码
- 判断2个日期之间相差多少个月
- 关于“日期”的考法(闰年、两个日期间隔多少天)(金山笔试)
- 一些js小方法:格式化xml, 计算2个日期间隔的天数, 保留小数点后两位等