获取年中的天数List 返回

发布时间 2023-06-25 17:27:02作者: YaShi
        public void dateList()
        {
            // 输入年份
            Console.Write("请输入年份:");
            int year = int.Parse(Console.ReadLine());  
            // 使用List集合来存储日历
            var  calendar = GenerateCalendar(year);
            calendar.ForEach(x => Console.WriteLine($"{x.year}年{x.month}月{x.day}日{x.WeekDay}星期"));
        }

        public static List<date> GenerateCalendar(int year)
        { 
            List<date> ymrList = new List<date>();
            // 循环生成每个月的日历
            for (int month = 1; month <= 12; month++)
            {
                // 获取指定年份和月份的第一天
                DateTime firstDayOfMonth = new DateTime(year, month, 1);

                // 计算第一天是星期几
                int firstDayOfWeek = (int)firstDayOfMonth.DayOfWeek;

                // 获取指定年份和月份的总天数
                int totalDaysOfMonth = DateTime.DaysInMonth(year, month);

                
                for (int i = 1; i <= totalDaysOfMonth;)
                {
                    
                        if (firstDayOfWeek > 6)
                        {
                            firstDayOfWeek = 0;
                        }  
                        ymrList.Add(new date { year = year, month = month, day = i++, WeekDay = firstDayOfWeek++ }); 
                } 
            }

            return ymrList;
        }

        public class date
        {
            public int year { get; set; }
            public int month { get; set; }
            public int day { get; set; }
            public int WeekDay { get; set; }
        }