文章

19

粉丝

0

获赞

125

访问

3.0k

头像
日期差值 题解:
P1290 上海交通大学/西北工业大学2019机试
发布于2025年3月1日 22:42
阅读数 340

差值=日期2是这一年的第几天+日期1年初到日期2年初的天数-日期1是这一年的第几天+1

#include <bits/stdc++.h>
using namespace std;

int month[15] = {0 ,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int rmonth[15] = {0 ,31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

bool isLeapYear(int year) { //判闰年 
	return((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
}

int main() {
	int day1, day2;
	cin >> day1 >> day2;
	// 年月日 
	int year1 = day1 / 10000;
	int year2 = day2 / 10000;
	int month1 = day1 / 100 % 100;
	int month2 = day2 / 100 % 100;
	int date1 = day1 % 100;
	int date2 = day2 % 100;
	
	int sum1 = date1;
	int sum2 = date2;
	
	for(int i = 0; i < month1; i++) { //计算日期1是这一年的第几天  
		if(isLeapYear(year1)) {
			sum1 += rmonth[i];
		} else sum1 += month[i]; 
	}
	
	for(int i = 0; i < month2; i++) { //计算日期2是这一年的第几天 
		if(isLeapYear(year2)) {
			sum2 += rmonth[i];
		} else sum2 += month[i];
	}
	
	int cnt = 0;
	for(int i = year1; i < year2; i++) ...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发