C#根据时间范围获取每年每月每周的分组
简介:C#根据时间范围获取每年每月每周的分组,这个时间范围可以是多年(2012.01.01-2015.12.31),
也可以是一年中的几个月(2015.01.01-2015.12.31),也可以是月个月中的几个星期
(2015.01.01-2015.01.21),根据起始日期和结束日期,生成一个以起始日期和结束日期为
键值对的字典(Dictionary<string, string> ),时间仓促,初步写的算法,以后再优化,目前
唯一的一点小遗憾就是,月中每周键值对的排序问题。详细代码如下:
-------------------------------------------------------------------------------------------------------------------------
根据时间范围获取每年每月每周的分组:
/// <summary>
/// 根据时间范围获取每年每月每周的分组
/// </summary>
/// <param name="strStartDate">起始时间</param>
/// <param name="strEndDate">结束时间</param>
/// <returns>返回每周起始结束键值对</returns>
/// <remarks>创建人员(日期):★彭振★(150106 11:12)</remarks>
public static Dictionary<string, string> GetGroupWeekByDateRange(string strStartDate, string strEndDate)
{
Dictionary<string, string> dict = new Dictionary<string, string>();
DateTime dtStartDate = DateTime.Parse(strStartDate);
DateTime dtEndDate = DateTime.Parse(strEndDate);
//同年
if (dtStartDate.Year == dtEndDate.Year)
{
GetGroupWeekByYear(dict, dtStartDate, dtEndDate);
}
//不同年
else
{
int WhileCount = dtEndDate.Year - dtStartDate.Year;
//某年一共有多少天
int YearDay = DateTime.IsLeapYear(dtStartDate.Year) ? 366 : 365;
DateTime dtTempStartDate = dtStartDate;
DateTime dtTempEndDate = dtTempStartDate.AddDays(YearDay - dtTempStartDate.DayOfYear);
//根据时间范围获取每月每周的分组
GetGroupWeekByYear(dict, dtTempStartDat