首页 新闻 会员 周边

C# 给出两个 时间段 把出现的日期天数 保存集合中 方法怎么写

0
[待解决问题]

比如一个方法  接收两个时间参数,返回一个集合 

集合里面保存区间内出现的日期

传入 2017-03-01 和 2017-06-05

集合中就保存

2017-03-01

2017-03-02

2017-03-03

2017-03-04

直到

2017-06-05

~雨落忧伤~的主页 ~雨落忧伤~ | 菜鸟二级 | 园豆:336
提问于:2018-04-20 10:09
< >
分享
所有回答(2)
0

写个方法,逐一的把每个日期都加进去吧。。。。。

华临天下 | 园豆:1501 (小虾三级) | 2018-04-20 10:12

怎么加

支持(0) 反对(0) ~雨落忧伤~ | 园豆:336 (菜鸟二级) | 2018-04-20 10:13

@~雨落忧伤~: 

static List<DateTime> GetList(DateTime date1, DateTime date2)
{
List<DateTime> list;
DateTime temp;

list = new List<DateTime>();
var a = date2 - date1;
for (var i = 0; i <= a.Days; i++)
{
temp = date1.AddDays(i);
list.Add(temp);
}

return list;
}

 

这样试试看吧

支持(0) 反对(0) 华临天下 | 园豆:1501 (小虾三级) | 2018-04-20 10:21

@华临天下:  

List<DateTime> liststr = new List<DateTime>();
//DateTime d1 = DateTime.Parse(startdate);
for (DateTime d1 = DateTime.Parse("2015-3-01"); d1 <= DateTime.Parse("2015-7-01"); d1 = d1.AddDays(1))
{
liststr.Add(d1);
}
string sss = "";
foreach (var item in liststr)
{
Console.WriteLine(item);
}
Console.WriteLine();

这样好像也行

支持(0) 反对(0) ~雨落忧伤~ | 园豆:336 (菜鸟二级) | 2018-04-20 10:28

@~雨落忧伤~: 能解决就行了啊。。。。能不能给点豆豆

支持(0) 反对(0) 华临天下 | 园豆:1501 (小虾三级) | 2018-04-20 10:31
0

static List<DateTime> CreateDate(DateTime startDate, DateTime endDate)
{
if (endDate.Date < startDate.Date)
{
return new List<DateTime>(0);
}
if (startDate.Date == endDate.Date)
{
return new List<DateTime>(1)
{
startDate.Date
};
}
List<DateTime> dates = new List<DateTime>((endDate - startDate).Days);

var midStartDate = startDate.Date;
var midEndDate = endDate.Date;
while (midEndDate > midStartDate)
{
dates.Add(midStartDate.Date);
dates.Add(midEndDate.Date);
midStartDate = midStartDate.AddDays(1);
midEndDate = midEndDate.AddDays(-1);
}
if (midEndDate == midStartDate)
{
dates.Add(midStartDate.Date);
}
return dates;
}

对顺序没有要求可以这样

通信的搞程序 | 园豆:1747 (小虾三级) | 2018-04-22 22:52

好复杂

支持(0) 反对(0) ~雨落忧伤~ | 园豆:336 (菜鸟二级) | 2018-04-23 16:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册