首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于跨年拆分的有关问题

2013-07-04 
关于跨年拆分的问题有一个时间段开始时间:2011-06-25结束时间:2013-08-13要求拆分成2011-06-25至2011-12-3

关于跨年拆分的问题
有一个时间段
开始时间: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));
                }

            }

热点排行