• 计算星期


    题目内容:

    给出任意一个年月日(年>1900),现在我们不能只是直接计算,要先判断给出的日期是否合法,对于非法的日期要给出错误提示信息,合法的日期要再计算是星期几。

    输入格式:

    年 月 日

    输出格式:

    0~6。
        星期日用 0 表示,星期一用 1 表示,星期二用 2 表示......星期六用 6 表示。

    假设年份大于1900。先想一想:我们现在只会使用 if 语句,该如何建立数学模型?

    输入样例:

    2013 3 11

    输出样例:

    1

    输入样例:

    2013 13 15

    输出样例:

    month is error.

    程序代码:*

          

    #include "stdio.h"
    void CaculateWeekDay(int y,int m, int d);
    int JudgeDay(int y, int m, int d);
    int leap (int y);
    int main()
    {
      int year = 0,month = 0,day = 0;
      scanf ("%d %d %d",&year,&month,&day) ;
      if (month > 12 || month < 1)
        {
        printf("month is error.");
        if(JudgeDay (year , month , day))
        printf("day is error.");
        }
      else if(JudgeDay (year , month , day))
        printf("day is error.");
      else
        CaculateWeekDay(year , month , day);
      return 0;

    }
    int leap (int y)//判断是否是闰年
    {
      if((y%100!=0&&y%4==0)||y%400==0)
        return 1;
      else return 0;
    }

    void CaculateWeekDay(int y,int m, int d)//计算是星期几
    {

      int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
      int i;
      if(m>2&&leap(y))d++;
      for(i=1;i<m;i++)
        {
        d+=mon[i];
        }
      d=y-1+(y-1)/4-(y-1)/100+(y-1)/400+d;
      switch(d%7)
        {
        case 0: printf("0 "); break;
        case 1: printf("1 "); break;
        case 2: printf("2 "); break;
        case 3: printf("3 "); break;
        case 4: printf("4 "); break;
        case 5: printf("5 "); break;
        case 6: printf("6 "); break;
        }
    }
    int JudgeDay(int y, int m, int d)//判断输入是否合法
    {
      if (d <= 0 || d> 31)
      return 1;
      switch (m)
        {
        case 4:
        case 6:
        case 9:
        case 11: if (d== 31) return 1; break;
        case 2: if (!leap(y)&&(d> 28))
              {
              return 1; break;
              }
            else if(d>29)
              {
              return 1; break;
              }
        }
      return 0;
    }

           

           

           

     

  • 相关阅读:
    UICollectionView中使用 UICollectionViewFlowLayout进行布局(模仿苹果相册)
    使用CocoaPods被卡住:Updating local specs repositories
    【原】iOS 同时重写setter和getter时候报错:Use of undeclared identifier '_name';did you mean 'name'
    iOS 设置不同的字体颜色
    使用java代码,动态给TextView设置drawable
    格式化浮点数(保留指定位数)
    监听输入法的出现和隐藏
    dp和px的转换
    获取状态栏高度
    获取在attr.xml中声明的主题样式
  • 原文地址:https://www.cnblogs.com/entrepre/p/5376807.html
Copyright © 2020-2023  润新知