CC++:计算某年某月的1号是星期几
C&C++函数实训-这天星期几?
任务描述
本关任务:编写函数 whatDay,计算某年某月的1号是星期几并返回。
相关知识
要知道某一天是星期几,可以用已知的某一天进行推导。
例如已知公元1年1月1日是星期一,公元2年1月1日则是在星期一基础上加上一整年的天数(要考虑闰年,闰年一年366天,非闰年365天),如果不是1月,例如7月,则要加上1到6月的所有天数,这里也要考虑闰年,因为闰年的二月是29天,非闰年是28天。
这样就可以算出从公元1年1月1日到该年月过了多少天,而过了7天星期不变,所以可以用这种方法推导出公元元年之后的任何一天是星期几。
下面的程序可以计算星期一过了 n 天后是星期几:
w = 1; // 从星期一开始
w = w + n; // n天后
w = w % 7; // 得到0-6,其中0为星期天
// 调整星期天
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号是星期几相关推荐
- java 年计算_java实现计算某年某月的天数
在计算某年某月的天数时,需要注意平年闰年. 分析:闰年具体的判定方法就要看它的判定条件:四年一闰 , 百年不闰 ,400年再闰.而计算该年该月的天数,又分大月和小月,特殊月份2月之分. (视频教程推荐 ...
- python报表自动化系列 - 计算某年某个月的天数
Python计算某年某个月的天数(公历) 李俊才 邮箱:291148484@163.com [函数说明] 传入参数yearmont表示某年的某个具体月份,返回该月的天数. [实现方法] 每单我们指定一 ...
- 选择结构——计算某年某月的天数
[问题描述] 编写程序计算某年某月的天数.输入年份year和月份month,输出该月份的天数. [输入形式] 两个数字,中间用空格隔开 [输出形式] 一个数字 [样例输入] 2012 2 [样例输出] ...
- excel中计算某年某月有多少天(函数:EOMONTH)
excel中计算某年某月有多少天(函数:EOMONTH;DAY) 描述 函数 操作步骤 操作截图 描述 计算某年某月有多少天 函数 EOMONTH DAY 操作步骤 如果年月在A1,那么输入 =DAY ...
- #c语言计算某年某月的天数
1.List item 必备计算某年某月天数知识c语言: 每年1,3,5,7,8,10,12每月31天 每年4,6,9,11每月30天 每年2月若是闰年29天,平年28天 闰年:1.能被4整除但不能被 ...
- c语言编写一个程序计算某年某月有几天,c语言编写程序,输入某年某月,求该月的天数...
c语言编写程序,输入某年某月,求该月的天数 #包括 voidmain() { 年.月.日: 请输入当前日期(年月以空格分隔): ': 中国年月 而(月=0 | |月12) { cout '输入时间有误 ...
- 计算某年某月的天数问题
给定某年和某月的数据,输出此月的天数.如:2014年2月,其天数为28天 . #include<stdio.h> #include<stdbool.h> #include< ...
- 用java计算某年某月的天数
一年中有 12 个月,而每个月的天数是不一样的. 大月 31 天,分别为 1,3,5,7,8,10,12 月,小月 30 天,分别 为 4,6,9,11 月. 二月比较特殊,平年的二月只有 28 天, ...
- 计算某年某月有多小天
/* * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作 者: 李家豪 * 完成日期:2013 年11月4日 * 版 本 号:v1.0 ...
最新文章
- devops和docker_通过免费的2小时Docker课程学习DevOps基础知识
- 微信的一个隐藏功能,我身边绝大多数人都不知道,其实很实用
- 光纤收发器在高清网络视频监控工程项目中的应用
- 不学无数——SpringBoot入门VI
- iOS中常见的设计模式(MVC/单例/委托/观察者)
- 笔记 | 如何在Python下调用Linux的Shell命令?
- js常用几种类方法实现
- C++写的B+树源码
- 设计模式-02-创建型模式详解
- CSDN排名更新又出问题了?
- spring framework源码下载并导入eclipse
- ASP.NET 省市区联级
- 2022 年要了解的新兴安全供应商
- SAS笔记#通过TABULATE过程制作汇总报表
- 怎样预防电脑辐射脱发
- 【2018ECCV】Zero-Shot Deep Domain Adaptation 零样本深度域适应
- 【Struck】论文阅读笔记
- 腾讯开放平台 应用认领命令行
- pthread_cond_init 初始化条件变量使用
- TvRecyclerView