题目要求是这个样子的:编写一个程序,根据输入的年份和月份,输出月历   月历的格式就是那种我们最常见的格式,上面一排是星期,下面是日期,我想看看是怎么写的,求高手指导下,谢谢!菜鸟、小易感激不尽!!

解决方案 »

  1.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;namespace wuliaowanwan
    {
        
        public class PrintCalendar
        {        static void Main(String[] args)
            {
                Console.WriteLine("******************欢 迎 使 用 万 年 历******************");
                Console.Write("\n请选择年份: ");
                int year = int.Parse(Console.ReadLine());
                Console.Write("\n请选择月份: ");
                int month = int.Parse(Console.ReadLine());            int days = 0; // 存储当月的天数
                bool isRn;
                /* 判断是否是闰年 */
                if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0)
                { // 判断是否为闰年
                    isRn = true; // 闰年
                }
                else
                {
                    isRn = false;// 平年
                }            /* 计算输入的年份之前的天数 */
                int totalDays = 0;
                for (int i = 1900; i < year; i++)
                {
                    /* 判断闰年或平年,并进行天数累加 */
                    if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0)
                    { // 判断是否为闰年
                        totalDays = totalDays + 366; // 闰年366天
                    }
                    else
                    {
                        totalDays = totalDays + 365; // 平年365天
                    }
                }            /* 计算输入月份之前的天数 */
                int beforeDays = 0;
                for (int i = 1; i <= month; i++)
                {
                    switch (i)
                    {
                        case 1:
                        case 3:
                        case 5:
                        case 7:
                        case 8:
                        case 10:
                        case 12:
                            days = 31;
                            break;
                        case 2:
                            if (isRn)
                            {
                                days = 29;
                            }
                            else
                            {
                                days = 28;
                            }
                            break;
                        default:
                            days = 30;
                            break;
                    }
                    if (i < month)
                    {
                        beforeDays = beforeDays + days;
                    }
                }
                totalDays = totalDays + beforeDays; // 距离1900年1月1日的天数            /* 计算星期几 */
                int firstDayOfMonth; // 存储当月第一天是星期几:星期日为0,星期一~星期六为1~6
                int temp = 1 + totalDays % 7; // 从1900年1月1日推算
                if (temp == 7)
                { // 求当月第一天
                    firstDayOfMonth = 0; // 周日
                }
                else
                {
                    firstDayOfMonth = temp;
                }            /* 输出日历 */
                Console.WriteLine("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
                for (int nullNo = 0; nullNo < firstDayOfMonth; nullNo++)
                {
                    Console.Write("\t"); // 输出空格
                }
                for (int i = 1; i <= days; i++)
                {
                    Console.Write(i + "\t");
                    if ((totalDays + i - 1) % 7 == 5)
                    { // 如果当天为周六,输出换行
                        Console.WriteLine();
                    }
                }
                Console.Read();
            }
        } 
    }
    我自己搜到了,给大家分享下吧,哈哈,自作多情下………………
      

  2.   

    我正在写这个...wait for a mement
      

  3.   


                Console.WriteLine("*******{0}************","Welcome");
                Console.WriteLine("Please input the year:");
                String tempy = Console.ReadLine();
                Console.WriteLine("Please input the month:");
                String tempm = Console.ReadLine();
                Int32 year, month;            if (!Int32.TryParse(tempy, out year) || !Int32.TryParse(tempm, out month))
                    return;            Int32 days = DateTime.DaysInMonth(year, month);
                Int32 i = (Int32)(new DateTime(year, month, 1).DayOfWeek);            Console.WriteLine("Su".PadLeft(5) + "Mo".PadLeft(5) + "Tu".PadLeft(5) + "We".PadLeft(5) + "Th".PadLeft(5) + "Fr".PadLeft(5) + "Sa".PadLeft(5));            Int32 size = 0;
                Int32 k = 0;
                while (k < i)
                {
                    Console.Write("".PadLeft(5));
                    k++;
                    size++;
                }
                for (Int32 j = 1; j < days; j++)
                {
                    Console.Write(j.ToString().PadLeft(5));
                    size++;
                    if (size % 7 == 0)
                        Console.WriteLine();
                }
                Console.WriteLine();