2015-02-07 101 views
-2

我有一个日期'2015-01-25'。如何获得2015年1月的遗骸日期。是否有任何内置的函数来实现这个在c# 仍然天,即'2015-01-26','2015-01-27','2015-01-28', '2015-01-29','2015-01-30','2015-01-31'等。如何从日期找到一个月的遗体日期?

+0

你是什么意思的“遗骸日期”?你真的有这个'DateTime'吗? – 2015-02-07 08:14:07

+0

@乔恩飞碟双向,雅安2015年1月25日“是一个DATETIME日期 – 2015-02-07 08:17:37

+0

和“遗体日期”?该月剩余的天数?包括或不包括日期本身?注意你是如何得到不同的答案,理解你的问题不同,这表明你的问题不清楚... – 2015-02-07 08:19:11

回答

0

如果你想找到剩下的日子,直到下个月,那么你可以在一天中循环添加到当前DateTime并检查新DateTime月份一样的是你的。如果新的DateTime符合条件,则将其添加到列表中。如果不是,则打破循环。

您将使用DateTime.AddDays()方法,该方法返回一个新的DateTime,该方法将指定的天数添加到此实例的值中。

DateTime myDateTime = new DateTime(2015, 1, 25); 

var remainedDateTimesToNextMonth = new List<DateTime>(); 
var nextDay = myDateTime; 

while(true) 
{ 
    nextDay = nextDay.AddDays(1); 
    if (nextDay.Month == myDateTime.Month) 
    { 
     remainedDateTimesToNextMonth.Add(nextDay); 
    } 
    else break; 
} 

和INT的结果都会有六个项目里面remainedDateTimesToNextMonth列表:

2015-01-262015-01-272015-01-282015-01-292015-01-302015-01-31

0

您可以使用DateTime.DaysInMonth(year, month)来获取以月为单位的总天数,并减去当前的月份。

DateTime someDate = new DateTime(2015,1,25); 
var remaining = DateTime.DaysInMonth(2015, 1) - someDate.Day; 

然后您就知道给定月份的剩余天数,并且可以使用for循环在列表中设置剩余日期。

List<DateTime> remainingDays = new List<DateTime>(); 
for (int i = 1; i <= remaining; i++) 
{ 
    remainingDays.Add(someDate.AddDays(i)); 
} 
1

取得今天

var today = DateTime.Now; 

获取下个月

var firstDayNextMonth = new DateTime(DateTime.Now.Year, DateTime.Now.AddMonths(1).Month, 1); 

的第一天,在列表中创建的今天下个月(Enumerable.Range)循环的第一天之间的天列表,并把它们变成日期(选择)通过将每个int到今天

var dates = Enumerable.Range(0, firstDayNextMonth.Subtract(today).Days + 1) 
         .Select(d => today.AddDays(d)) 
         .ToList(); 
+0

请更新更多的细节你的答案所以它会有助于未来的读者。 – Hemang 2015-02-07 09:19:07

相关问题