2个日期间隔算法,每隔多少个月后的第几天
来源:互联网 发布:外部js文件怎么写 编辑:程序博客网 时间:2024/05/22 15:01
计算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());
}
}
- 2个日期间隔算法,每隔多少个月后的第几天
- 取得2个日期之间间隔的天数
- SimpleDateFormat - 取得2个日期之间间隔的天数
- c# TimeSpan 计算2个日期间隔的天数
- JS比较2个日期间隔
- 获取第几天时间的日期
- 日期计算第几天
- Oracle 查询谋个日期是第几天
- 判断2个日期的时间差多少天
- Linux中Cron任务间隔执行:每隔几分钟/几小时/几天
- Linux中Cron任务间隔执行:每隔几分钟/几小时/几天
- 计算连个日期之间间隔的天数
- 某年的第几天2
- 判断日期是第几天
- HDU 2005 第几天?【日期】
- 求输入的日期是输入年份的第几天
- 输入的日期是该年的第几天
- 2个日期之间有多少天
- Z_
- 页面滚动 marquee
- struct union 内存对齐
- JQuery常用方法一览
- Slackware下自动挂载Windows系统上的盘符的方法
- 2个日期间隔算法,每隔多少个月后的第几天
- 出现错误-未找到要在其中创建新文件系统的有效设备。请检查您的硬件以找到问题的起因。
- POJ 1520 C++
- C#开发中发生“服务器无法生成类型为“Char(20)”的主键列。”
- List Control控件技巧总汇【二】
- 在QListWidget的item上实现右键菜单
- 在Oracle存储过程中需要遍历一张表《转》
- 随记
- export sql select date to Excel