读书人

关于跨年拆分的有关问题

发布时间: 2013-07-04 11:45:55 作者: rapoo

关于跨年拆分的问题
有一个时间段
开始时间:2011-06-25
结束时间:2013-08-13

要求拆分成
2011-06-25至2011-12-31
2012-01-01至2012-12-31
2013-01-01至2013-08-13

求函数
[解决办法]


public static void SplitDate(DateTime begin, DateTime end)
{
if (begin > end)
{
SplitDate(end, begin);
return;
}
int beginYear = begin.Year;
int endYear = end.Year;
for (; beginYear <= endYear; beginYear++)
{

Console.WriteLine((beginYear > begin.Year ? new DateTime(beginYear, 1, 1).ToShortDateString() : begin.AddYears(beginYear - begin.Year).ToShortDateString()) + "--" + (beginYear == endYear ? end.ToShortDateString() : new DateTime(begin.Year, 12, 31).ToShortDateString()));
}
}


[解决办法]

DateTime start = Convert.ToDateTime("2011-06-25");
DateTime end = Convert.ToDateTime("2014-01-13");

for (; start <= end; start = new DateTime(start.AddYears(1).Year, 1, 1))
{
DateTime gaptime = new DateTime(start.AddYears(1).Year, 1, 1);
if (gaptime.AddDays(-1) >= end)
{
Console.WriteLine("开始时间:" + start + "\t" + "结束时间:" + end);
}
else


{
Console.WriteLine("开始时间:" + start + "\t" + "结束时间:" + gaptime.AddDays(-1));
}

}

读书人网 >C#

热点推荐