static string[] astrNumber = { "st", "nd", "rd" };        public override string ToString()
        {
            string day = iDay.ToString + ((iDay > 3) ? "th" : astrNumber[iDay - 1]);
            return String.Formate("{0} {1} {2}", day, astrMonths[iMonth - 1], iYear);
        }

解决方案 »

  1.   

    算了,贴完整代码using System;namespace _03_23_01
    {
        class MyDate
        {
            public static void Main()
            {
                Date date = new Date();
                date.iYear = 2000;
                date.iMonth = 7;
                date.iDay = 20;
                Console.WriteLine("Moon walk: {0}/{1}/{2} Day of Year:{3}",date.iMonth,date.iDay,date.iYear,date.DayOfYear());
                Console.WriteLine(date.ToString());
                Console.WriteLine(date);
            }        
        }    struct Date 
        {
            public int iYear;
            public int iMonth;
            public int iDay;
            
            static int[] aiDate = {0,31,59,90,120,151,181,212,243,273,304,334};        public static bool IsLeapYear(int year)
            {
                return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
            }        public int DayOfYear()
            {
                return aiDate[iMonth - 1] + iDay + (iMonth > 2 && IsLeapYear(iYear) ? 1 : 0);
            }        static string[] astrMonths = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };        static string[] astrNumber = { "st", "nd", "rd" };        public override string ToString()
            {
                string day = iDay.ToString + ((iDay > 3) ? "th" : astrNumber[iDay - 1]);
                return String.Formate("{0} {1} {2}", day, astrMonths[iMonth - 1], iYear);
            }
        }
    }
      

  2.   

    using System;namespace _03_23_01
    {
        class MyDate
        {
            public static void Main()
            {
                Date date = new Date();
                date.iYear = 2000;
                date.iMonth = 7;
                date.iDay = 20;
                Console.WriteLine("Moon walk: {0}/{1}/{2} Day of Year:{3}", date.iMonth, date.iDay, date.iYear, date.DayOfYear());
                Console.WriteLine(date.ToString());
                Console.WriteLine(date);
            }
        }    struct Date
        {
            public int iYear;
            public int iMonth;
            public int iDay;        static int[] aiDate = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };        public static bool IsLeapYear(int year)
            {
                return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
            }        public int DayOfYear()
            {
                return aiDate[iMonth - 1] + iDay + (iMonth > 2 && IsLeapYear(iYear) ? 1 : 0);
            }        static string[] astrMonths = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };        static string[] astrNumber = { "st", "nd", "rd" };        public override string ToString()
            {
                string day = iDay.ToString() + ((iDay > 3) ? "th" : astrNumber[iDay - 1]);
                return String.Format("{0} {1} {2}", day, astrMonths[iMonth - 1], iYear);
            }
        }
    }
      

  3.   

    .ToString漏了扩号!
    Format拼错!!
    应该是:
                string day = iDay.ToString() +((iDay > 3) ? "th" : astrNumber[iDay - 1]);
                return String.Format("{0} {1} {2}", day, astrMonths[iMonth - 1], iYear);
      

  4.   

    static string[] astrNumber = { "st", "nd", "rd" };        public override string ToString()
            {
                string day = iDay.ToString + ((iDay > 3) ? "th" : astrNumber[iDay - 1]);
                return String.Formate("{0} {1} {2}", day, astrMonths[iMonth - 1], iYear);
            }错误改正:
    iDay.ToString()
    String.Format( )reason:方法调用时有“()”,Format拼写错误