C&C++函数实训-这天星期几?

任务描述

本关任务:编写函数 whatDay,计算某年某月的1号是星期几并返回。

相关知识

要知道某一天是星期几,可以用已知的某一天进行推导。

例如已知公元1年1月1日是星期一,公元2年1月1日则是在星期一基础上加上一整年的天数(要考虑闰年,闰年一年366天,非闰年365天),如果不是1月,例如7月,则要加上1到6月的所有天数,这里也要考虑闰年,因为闰年的二月是29天,非闰年是28天。

这样就可以算出从公元1年1月1日到该年月过了多少天,而过了7天星期不变,所以可以用这种方法推导出公元元年之后的任何一天是星期几。

下面的程序可以计算星期一过了 n 天后是星期几:


  1. w = 1; // 从星期一开始
  2. w = w + n; // n天后
  3. w = w % 7; // 得到0-6,其中0为星期天
  4. // 调整星期天
  5. if(w == 0) w = 7;

编程要求

计算输入数据年月份的1号是星期几并返回(周一到周日分别返回整数1到7)。

其中该函数的参数为输入的两个整数数据:年和月。

提示:由于判断是否闰年有多个地方需要用到,故已把该功能单独实现为一个函数。

代码如下(已删去注释):

#include<iostream>
using namespace std;int leapYear(int y){if (y%4==0 && y%100 !=0 || y%400==0 ) return 1;return 0;
}int whatDay(int year,int month){int dyear=0,nd=0,w,lyear=0;if (year==1) nd = 0 ; else {for (int i=1;i<year;i++) {if (leapYear(i)) lyear+=1;else dyear+=1;}nd=dyear*365+lyear*366;}if (month==1) nd+=1; else {int monthl[]={1,31,0,31,30,31,30,31,31,30,31,30,31};for (int j=0;j<=month-1;j++) {nd+=monthl[j];}if (leapYear(year) && month >=3 ) nd+=29;if (leapYear(year)==0 && month >=3 ) nd+=28;}w=0;w+=nd;w=w%7;if (w==0) w=7;return w;
}int main()
{int y , m , xq ;cin >> y >> m ;xq=whatDay(y,m);cout << y << "年" << m << "月1日是星期";if   (xq==7) cout << "日" << endl ;else         cout <<  xq  << endl ;return 0;
}

CC++:计算某年某月的1号是星期几相关推荐

  1. java 年计算_java实现计算某年某月的天数

    在计算某年某月的天数时,需要注意平年闰年. 分析:闰年具体的判定方法就要看它的判定条件:四年一闰 , 百年不闰 ,400年再闰.而计算该年该月的天数,又分大月和小月,特殊月份2月之分. (视频教程推荐 ...

  2. python报表自动化系列 - 计算某年某个月的天数

    Python计算某年某个月的天数(公历) 李俊才 邮箱:291148484@163.com [函数说明] 传入参数yearmont表示某年的某个具体月份,返回该月的天数. [实现方法] 每单我们指定一 ...

  3. 选择结构——计算某年某月的天数

    [问题描述] 编写程序计算某年某月的天数.输入年份year和月份month,输出该月份的天数. [输入形式] 两个数字,中间用空格隔开 [输出形式] 一个数字 [样例输入] 2012 2 [样例输出] ...

  4. excel中计算某年某月有多少天(函数:EOMONTH)

    excel中计算某年某月有多少天(函数:EOMONTH;DAY) 描述 函数 操作步骤 操作截图 描述 计算某年某月有多少天 函数 EOMONTH DAY 操作步骤 如果年月在A1,那么输入 =DAY ...

  5. #c语言计算某年某月的天数

    1.List item 必备计算某年某月天数知识c语言: 每年1,3,5,7,8,10,12每月31天 每年4,6,9,11每月30天 每年2月若是闰年29天,平年28天 闰年:1.能被4整除但不能被 ...

  6. c语言编写一个程序计算某年某月有几天,c语言编写程序,输入某年某月,求该月的天数...

    c语言编写程序,输入某年某月,求该月的天数 #包括 voidmain() { 年.月.日: 请输入当前日期(年月以空格分隔): ': 中国年月 而(月=0 | |月12) { cout '输入时间有误 ...

  7. 计算某年某月的天数问题

    给定某年和某月的数据,输出此月的天数.如:2014年2月,其天数为28天 . #include<stdio.h> #include<stdbool.h> #include< ...

  8. 用java计算某年某月的天数

    一年中有 12 个月,而每个月的天数是不一样的. 大月 31 天,分别为 1,3,5,7,8,10,12 月,小月 30 天,分别 为 4,6,9,11 月. 二月比较特殊,平年的二月只有 28 天, ...

  9. 计算某年某月有多小天

    /* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: 李家豪 * 完成日期:2013 年11月4日 * 版 本 号:v1.0 ...

最新文章

  1. devops和docker_通过免费的2小时Docker课程学习DevOps基础知识
  2. 微信的一个隐藏功能,我身边绝大多数人都不知道,其实很实用
  3. 光纤收发器在高清网络视频监控工程项目中的应用
  4. 不学无数——SpringBoot入门VI
  5. iOS中常见的设计模式(MVC/单例/委托/观察者)
  6. 笔记 | 如何在Python下调用Linux的Shell命令?
  7. js常用几种类方法实现
  8. C++写的B+树源码
  9. 设计模式-02-创建型模式详解
  10. CSDN排名更新又出问题了?
  11. spring framework源码下载并导入eclipse
  12. ASP.NET 省市区联级
  13. 2022 年要了解的新兴安全供应商
  14. SAS笔记#通过TABULATE过程制作汇总报表
  15. 怎样预防电脑辐射脱发
  16. 【2018ECCV】Zero-Shot Deep Domain Adaptation 零样本深度域适应
  17. 【Struck】论文阅读笔记
  18. 腾讯开放平台 应用认领命令行
  19. pthread_cond_init 初始化条件变量使用
  20. TvRecyclerView

热门文章

  1. APICloud常用
  2. apicloud ajax html,apicloud ajax请求问题
  3. java中注解 详解
  4. 美女数码宝贝(天女兽、蔷薇兽、花仙兽、莉莉丝兽、维纳斯兽、仙女兽、人鱼兽、古代人鱼兽、丁香兽)
  5. 【优化算法】粒子群优化灰狼算法【含Matlab源码 006期】
  6. 阿里云安全组已经开放端口但是服务器端口还是不能访问
  7. linux中send函数MSG_NOSIGNAL
  8. 广告投放策略及数据分析
  9. Makefile wildcard
  10. 基于AD603的AGC电路