c#对时间的处理(待添加)

1:返回在一定的时间段中某个星期数的时间集合


 /// <summary>
        /// 返回在一个范围中所选取的星期1-7的年月日的集合
        /// </summary>
        /// <param name="StartDate">开始日期</param>
        /// <param name="EndDate">结束的日期</param>
        /// <param name="week">需要提取的星期1-7数组:如(1,2)</param>
        /// <returns>返回时间的集合</returns>
        public List<string> getDateOfWeek(DateTime StartDate, DateTime EndDate, string[] week)
        {

            int weekFirst = Convert.ToInt32(StartDate.DayOfWeek);//开始日期第一天是星期几
            int startMonth = StartDate.Month;
            int startDay = StartDate.Day;
            int startYear = StartDate.Year;
            int maxMonthDays = DateTime.DaysInMonth(startYear, startMonth);
            DateTime outputDate = DateTime.Parse(startYear + "-" + startMonth + "-" + startDay);
            List<string> alldate = new List<string>();
            for (int i = 0; i < week.Length; i++)
            {
                startMonth = StartDate.Month;
                startDay = StartDate.Day;
                startYear = StartDate.Year;
                outputDate = StartDate;
                if (weekFirst == int.Parse(week[i]))
                {
                    outputDate = DateTime.Parse(startYear + "-" + startMonth + "-" + startDay);
                    alldate.Add(outputDate.ToString());
                }
                if (weekFirst < int.Parse(week[i]))
                {
                    startDay = StartDate.Day + (int.Parse(week[i]) - weekFirst);
                    outputDate = DateTime.Parse(startYear + "-" + startMonth + "-" + startDay);
                    alldate.Add(outputDate.ToString());
                }
                if (weekFirst > int.Parse(week[i]))
                {
                    startDay = StartDate.Day - (weekFirst - int.Parse(week[i]));

                }
                while (outputDate < EndDate)
                {

                    maxMonthDays = DateTime.DaysInMonth(startYear, startMonth);
                    startDay = startDay + 7;
                    if (startDay > maxMonthDays)
                    {
                        startDay = startDay - maxMonthDays;
                        startMonth++;
                    }
                    if (startMonth > 12)
                    {
                        startMonth = 1;
                        startYear++;
                    }
                    outputDate = DateTime.Parse(startYear + "-" + startMonth + "-" + startDay);
                    if (outputDate < EndDate)
                    {
                        alldate.Add(outputDate.ToString());
                    }

                }
            }
            return alldate;
        } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值