现在我得到了许多这样的日期范围数据(DataTable):
startDate:endDate:
2016-06-12 2016-08-13
2016-01-12 2016-03-13
...
如何计算今年每个月的总天数? 从1月到11月。
DataTable dtDateRange = ds1.Tables[0];
//Create Months
int[] count = new int[12];
//loop data
for (int i = 0; i < dtDateRange.Rows.Count; i++)
{
DateTime startTime = ((DateTime)dtDateRange.Rows[i]["STARTDATE"]);
DateTime endTime = ((DateTime)dtDateRange.Rows[i]["ENDDATE"]);
for (int a = startTime.DayOfYear; a < endTime.DayOfYear; a++)
{
count[startTime.Month-1] = count[startTime.Month-1] + 1;
}
}
foreach (int c in count)
{
Console.WriteLine(c);
}
Console.ReadKey();
答案 0 :(得分:0)
也许是这样的。我写在记事本中,所以我不确定它会编译。也许你会在这里和那里需要一个解决方案。如果需要,可以使用List将for循环中的日期添加到容器中。
DateTime startDate = DateTime.Parse("2016-06-12");
DateTime endDate = DateTime.Parse("2016-08-13");
for(DateTime date = startDate, startDate <= endDate, date = date.AddMonths(1) )
Console.WriteLine(date);
如果您只需要特定日期的月份,您可以通过Month属性从该日期开始询问。
答案 1 :(得分:-1)
试试这个
DateTime startDate1 = DateTime.Parse("2016-06-12");
DateTime endDate1 = DateTime.Parse("2016-08-13");
int days1 = endDate1.Subtract(startDate1).Days;
DateTime startDate2 = DateTime.Parse("2016-01-12");
DateTime endDate2 = DateTime.Parse("2016-03-13");
int days2 = endDate1.Subtract(startDate1).Days;