定义结构体日期变量Date统计天数

#include <iostream>

using namespace std;

bool isLeap(int year) {

return (year % 4 == 0 && year % 100!= 0) || year % 400 == 0;

}

int main() {

int year, month, day;

cin >> year >> month >> day;

int days[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

if (isLeap(year)) {

days[2] = 29;

}

int sum = 0;

for (int i = 1; i < month; ++i) {

sum += days[i];

}

sum += day;

cout << sum << endl;

return 0;

}bool isLeap(int year) ,这是一个自定义函数,名为 isLeap,函数接收一个整型参数 year,其功能是判断给定的年份 year 是否为闰年,并返回一个布尔类型(bool)的值。

函数体内部通过一个逻辑表达式 year % 4 == 0 && year % 100!= 0) || year % 400 == 0;来判断闰年:year % 4 == 0:表示年份能被 4 整除,这是闰年的一个基本条件。year % 100!= 0:表示年份不能被 100 整除,结合前面条件,满足此条件意味着不是整百年份且能被 4 整除的年份是闰年,例如 2004 年就是这种情况。year % 400 == 0:表示年份能被 400 整除,这是针对整百年份的特殊判断,整百年份只有能被 400 整除时才是闰年,像 2000 年是闰年,而 1900 年不是闰年。如果满足这整个逻辑表达式,函数就返回 true,表示是闰年;否则返回 false,表示不是闰年。之后定义了一个整型数组 days,数组中初始存储了每个月对应的天数,通过调用前面定义的 isLeap 函数来判断输入的年份 year 是否为闰年,如果是闰年,就将数组中对应 2 月的天数修改为 29 天,以符合闰年 2 月有 29 天的实际情况。之后初始化一个整型变量 sum 为 0,它用于累加计算给定日期是当年的第几天。通过一个 for 循环,从 1 开始遍历到输入的月份 month 的前一个月,在循环内部将每个月对应的天数累加到 sum 变量中,这样就得到了输入月份之前所有月份的天数总和。最后再将输入的日期 day 累加到 sum 变量中,此时 sum 变量的值就表示输入的这个日期在当年是第几天了。

全部评论

相关推荐

一表renzha:手写数字识别就是一个作业而已
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务