如何求两个日期之间的每一天

问题描述

如何求任意两个时间段之间的每一天呢。如2008-05-28到2008-06-06之间的2008-05-29,2008-05-30,2008-05-31,2008-06-01,2008-06-02,2008-06-03,2008-06-04,2008-06-05

解决方案

/** * 获得日期字符串数组 * @param calendarType 日期跨度的类型, * */public static Date[] getDateArrays(Date start,Date end ,int calendarType){ArrayList<Date> ret = new ArrayList<Date>();Calendar calendar = Calendar.getInstance();calendar.setTime(start);Date tmpDate = calendar.getTime();long endTime = end.getTime();while(tmpDate.before(end)||tmpDate.getTime() == endTime){ret.add(calendar.getTime());calendar.add(calendarType, 1);tmpDate = calendar.getTime();}Date[] dates = new Date[ret.size()];return ret.toArray(dates);}@Testpublic void getDateArrays2(){Date date = DateUtils.getDate("2008-04-01");Date date2 = DateUtils.getDate("2008-08-01");Date[] strArray = DateUtils.getDateArrays(date, date2, Calendar.DAY_OF_YEAR);for (Date string : strArray) {System.out.println(DateUtils.getDayStr(string));}}
解决方案二:
Start-> Fri Jun 20 09:51:50 CST 2008End-> Mon Jun 30 09:51:50 CST 2008Fri Jun 20 09:51:50 CST 2008Sat Jun 21 09:51:50 CST 2008Sun Jun 22 09:51:50 CST 2008Mon Jun 23 09:51:50 CST 2008Tue Jun 24 09:51:50 CST 2008Wed Jun 25 09:51:50 CST 2008Thu Jun 26 09:51:50 CST 2008Fri Jun 27 09:51:50 CST 2008Sat Jun 28 09:51:50 CST 2008Sun Jun 29 09:51:50 CST 2008
解决方案三:
Date one = new Date();System.out.println("Start-> " + one.toString());Calendar calendarTwo = Calendar.getInstance();calendarTwo.setTime(one);calendarTwo.add(Calendar.DAY_OF_YEAR, 10);Date two = calendarTwo.getTime();System.out.println("End-> " + two.toString());Date temp = one;while (temp.before(two)) {System.out.println(temp.toString());Calendar calendarOne = Calendar.getInstance();calendarOne.setTime(temp);calendarOne.add(Calendar.DAY_OF_YEAR, 1);temp = calendarOne.getTime();}
解决方案四:
参考jdk中文文档 日历类Calendar

时间: 2024-08-03 17:39:13

如何求两个日期之间的每一天的相关文章

java-怎么排除两个日期之间的节假日,下面我这个是计算排除周末的工作时间,怎么把节假日排除掉,求指教

问题描述 怎么排除两个日期之间的节假日,下面我这个是计算排除周末的工作时间,怎么把节假日排除掉,求指教 package server; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class CalculateHours { SimpleDateFormat format = new SimpleDateFormat( "yyyy-MM-dd H

提高运行效率-源代码去下,用来计算两个日期之间的时间。但是运行特别慢。求大神优化,能让它运行快点

问题描述 源代码去下,用来计算两个日期之间的时间.但是运行特别慢.求大神优化,能让它运行快点 #include using namespace std; const int lmonth[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年每个月份的时间 const int umonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; //非闰年每个月份的时间,定义符合使用习惯 bool isLeapYear

php判断两个日期之间相差多少个月份的方法

  本文实例讲述了php判断两个日期之间相差多少个月份的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 /** * @author injection(injection.mail@gmail.com) * @var date1日期1 * @var date2 日期2 * @var tags 年月日之间的分隔符标记,默认为'-' * @return 相差的月份数量 * @example: $date1 = "

ASP.NET如何获取两个日期之间的天数

 这篇文章主要介绍了ASP.NET获取两个日期之间的天数方法,需要的朋友可以参考下  代码如下: DateTime startdate=DateTime.Parse("2013-11-01");  DateTime enddate = DateTime.Parse("2013-11-11");  int d = enddate.Subtract(startdate).Days;    定义开始时间startdate  结束时间enddate  使用方法Subtrac

Python获取两个日期之间的列表

QQ交流群:127591054 JackChiang QQ:595696297 获取两个日期之间的日期列表如:输入2012-09-21~2013-10-21 得到的结果为:2012-09-21,2012-09-22等等一直到2013-10-21 调用get_date_list函数传入一个时间范围列表:如get_date_list([1,'2012-09-21','2013-10-21']) 传入参数列表第0个代表状态,0代表日期传入是错误的,1,代表传入一个日期.2.代表传入两个日期,并且第二个

要求时间复杂度为O(n)的求两个位置之间最大值的算法

问题描述 要求时间复杂度为O(n)的求两个位置之间最大值的算法 把一串数(32位int型)放到Num中,求begin和end位置使得begin与end之间的是数字和最大,要求时间复杂度是O(n). 注:不可以先排序,这串数字的位置不能改变. 最好有源码,思路也可以. 解决方案 #include #include int getmax(int first, int second) { return first > second ? first : second; } int main() { in

link用循环计算两个日期之间有多少工作日

问题描述 link用循环计算两个日期之间有多少工作日 用循环计算两个日期之间有多少工作日,link怎么实现?用takewhile怎么代替while? 解决方案 不考虑过节和轮休,写一个给你 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class P

c++-求两个日期相差的天数 用友元函数 我不知道要怎么改 看不懂调试。

问题描述 求两个日期相差的天数 用友元函数 我不知道要怎么改 看不懂调试. #include class Date {int yearmonthday;public : void show(); int set(int aint bint c); friend int End(Date &d1 Date &d2);};void Date::show (){cout<<""please input year monthday.""<}

oracle中如何获取两个日期之间指定星期的日期是多少

问题描述 oracle中如何获取两个日期之间指定星期的日期是多少 如题,现在用户选择了一个起始日期和截止日期, 也选择了几个星期, 那么如何得到他选择的这几个星期的日期分别是多少? 解决方案 获取两个日期之间星期X的日期列表获取两个日期之间的日期间隔获取指定日期是星期几 解决方案二: 我的思路是这样的 1.写个方法,获取 起始,截止 日期之间 所有的日期 2.oracle提供了获取指定日期是星期几 的 函数 把选定的星期作为条件即可 解决方案三: DECLARE v_date date; v_n