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;
        } 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章