zoukankan      html  css  js  c++  java
  • C#:查询某年(1900-2100)某月的日历

    using System;
    using System.Collections.Generic;
    public class Program
        {
        /********************主函数************************/
           public static void Main()
              {
                  /******************获取用户输入的年月**************/
                  while(true)
                      {
                          int year1,month1;
                          while(true)
                             {
                                Console.Write("请输入年份(1900-2100):");
                                year1=int.Parse(Console.ReadLine());
                                if(year1<1900||year1>2100)
                                   {
                                      Console.Write("年份输入错误,按回车键后重新输入");
                                      Console.ReadLine();
                                      Console.Clear();
                                   }
                                else
                                    {
                                       Console.Write("请输入月份(1-12):");
                                       month1=int.Parse(Console.ReadLine());
                                       if(month1<1||month1>12)
                                          {
                                             Console.Write("月份输入错误,按回车键后重新输入");
                                             Console.ReadLine();
                                             Console.Clear();
                                          }
                                       else
                                          {
                                             break;
                                          }
                                      }
                                  }

    /*********************************************************/
    /********************获取月份数据,包括前面的空格*********/
                    List<string> dats=new List<string>();//定义一个集合,用来存放月份里面的天数和要打印的空白数
                    Console.WriteLine(GetCrossDaysFrom1900(year1,month1));//输出从1900年1月1号到输入年份的天数
                    int dayofWeek=GetCrossDaysFrom1900(year1,month1)%7+1;
                    int space=dayofWeek-1;
                    for(int a=1;a<=space;a++)
                        {
                           dats.Add(" ");
                        }
                    for(int b=1;b<=GetDaysOfMonth(year1,month1);b++)
                       {
                          dats.Add(b.ToString());
                       }
    /*********************************************************/
    /********************输出某年某月的日历*******************/
                  Console.WriteLine("***********************************************");
                  Console.Write("一 二 三 四 五 六 日");
                  for(int d=0;d<dats.Count;d++)
                     {
                         if(d%7==0)//没打印7个数据就换行
                             {
                                Console.WriteLine();
                             }
                         Console.Write(dats[d]+" ");
                     }
                  Console.WriteLine();
                  Console.WriteLine("*************************************************");
                  Console.Write("按回车键继续");
                  Console.ReadLine();
                  Console.Clear();
                }
             }
    /********************从1900年1月1号到输入年份的天数*********/
            static int GetCrossDaysFrom1900(int year2, int month2)
                {
                    int days=0;
                    for(int i=1900;i<year2;i++)//计算从1900年一月一号到输入的这年一月一号一共有多少天
                        {
                           if(i%4==0&&i%100!=0||i%400==0)
                              {
                                 days+=366;
                               }
                           else
                               {
                                  days+=365;
                               }
                         }
                     for(int j=1;j<month2;j++)
                        {
                            if(j==2)  //判断二月有多少天
                              {
                                  if(year2%4==0&&year2%100!=0||year2%400==0)//判断是不是瑞年
                                     {
                                         days+=29;
                                     }
                                  else
                                     {
                                         days+=28;
                                      }
                                }
                            else if(j<=7&&j%2!=0||j>7&&j%2==0)//计算大月有多少天
                               {
                                   days+=31;
                                }
                            else
                                {
                                   days+=30;
                                 }
                           }
                        return days;
                     }
        /****************哪年哪月有多少天*******************/
              static int GetDaysOfMonth(int year3, int month3)
                  {
                     int dates;
                     if(month3==2)
                        {
                           if(year3%4==0&&year3%100!=0||year3%400==0)
                              {
                                 dates=29;
                              }
                           else
                              {
                                 dates=28;
                               }

                          }
                      else if(month3<=7&&month3%2!=0||month3>7&&month3%2==0)
                          {
                             dates=31;
                          }
                      else
                          {
                             dates=30;
                          }
                       return dates;
                   }
             }

  • 相关阅读:
    WebService之CXF注解之三(Service接口实现类)
    WebService之CXF注解之二(Service接口)
    WebService之CXF注解之一(封装类)
    JavaScript实现获取table中某一列的值
    sprintf,snprintf的用法(可以作为linux中itoa函数的补充)
    linux下Epoll实现简单的C/S通信
    WebService之CXF注解报错(三)
    WebService之CXF注解报错(二)
    Flex文件读取报错
    WebService之CXF注解报错(一)
  • 原文地址:https://www.cnblogs.com/jichuang/p/6515732.html
Copyright © 2011-2022 走看看