class Program
    {
        static void Main(string[] args)
        {
            int n;
            Date d = new Date(2007,1,1);
            Console.Write("当前日期:");
            Console.WriteLine("{0}年{1}月{2}日",d.Year,d.Month,d.Day);           
            Console.Write("要知道多少天后的日期,请输入:");
            n =int.Parse( Console.ReadLine());
            Console.Write("{0}天后的日期:",n);
            d.NextDay(n);
            Console.WriteLine(d.ToString());
            Console.ReadKey();
        }
    }
    class Date
    {
        int year;
        int month;
        int day;
        public Date()
        {
            year = 1900;
            month = 1;
            day = 1;
        }
        public Date(int year, int month, int day)
        {
            Year = year;
            Month = month;
            Day = day;
        }
        public Date SetDate(int year, int month, int day)
        {
            Year = year;
            Month = month;
            Day = day;
            return this;
        }
        public new string ToString()
        {
            int y = (Year > 0 ? Year : -Year);
            string date = y.ToString() + "年" + Month.ToString() + "月" + Day.ToString() + "日";
            return Year >= 0 ? "公元" + date : "公元前" + date;
        }
        public int Year
        {
            get
            {
                return year;
            }
            set
            {
                year = value;
            }
        }
        public int Month
        {
            get
            {
                return month;
            }
            set
            {
                if (value <= 12 && value >= 1)
                {
                    month = value;
                }
                else
                {
                    throw new Exception("错误的月份");
                }            }
        }
        public int Day
        {
            get
            {
                return day;
            }
            set
            {
                bool flag = true;
                if (value > 31 || value < 1)
                {
                    flag = false;
                }
                else
                {
                    int t = MonthType(month);
                    switch (t)
                    {
                        case 0: if (Run_nan(Year) && value > 29 || !Run_nan(Year) && value < 28)
                                flag = false;
                            break;
                         case 1: if (value > 30)
                                 flag = false; 
                             break;
                         case 2: if (value  > 31)
                                 flag = false;
                             break;
                    }
                }
                if (flag == true)
                {
                    day = value;
                }
                else
                {
                    throw new Exception("错误日期");
                }
            }
        }
        public static bool Run_nan(int year)//是否为闰年
        {
            int y;
            y=(year>0?year:-year);
            return (y%400==0||(y%4==0&&y%100!=0));
        }
        private int MonthType(int month)//月的类型,平月,小月,大月
        {
            if (month > 12 || month < 1)
            {
                return -1;
            }
            if (month == 2)
            {
                return 0;
            }
            if (month == 4 || month == 6 || month == 9 || month == 11)
            {
                return 1;
            }
            else
            {
                return 2;
            }
        }
        public Date NextDay(int n)//N天后的日期
        {   int i;
        for (i = 0; i < n; i++)
        {
            try
            {
                Day += 1;
            }            catch
            {
                try
                {                  
                      Day = 1;
                      Month += 1;                 
                    
                }
                catch
                {  
                        Month = 1;
                        Year += 1;
                   
                }
            }
        }        
         return this;
           
        }
    }
如果是闰年,就没有问题,如果不是闰年,就有错了。我找不出错在哪了,请帮找一下。