smurf 提交的代码
提交时间:2022年6月26日 21:37 语言:C++运行时间:0ms占用内存:253K
运行状态: Accepted
题目:日期差值1290

大会员可查看代码,点此开通大会员

                
                    #include<bits/stdc++.h>

using namespace std;

void read_date(int& year, int& month, int& day)
{
	string str;
	cin >> str;
	year = stoi(str.substr(0, 4));
	month = stoi(str.substr(4, 2));
	day = stoi(str.substr(6, 2));
}

bool IsLeapYear(int y)
{
	return !(y % 100) && y % 4 || y % 400;
}

int main()
{
	int y1, m1, d1;
	int y2, m2, d2;
	read_date(y1, m1, d1);
	read_date(y2, m2, d2);

	int dist = 0;
	for (int y = y1 + 1; y < y2; y++)
	{
		if (IsLeapYear(y))
			dist += 366;
		else
			dist += 365;
	}

	for (int m = m1 + 1; m <= m2; m++)
	{
		if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
			dist += 31;
		else if (m == 2)
			dist += IsLeapYear(y2) ? 29 : 28;
		else
			dist += 30;
	}

	dist += (d2 - d1 + 1);
	cout << dist;
	return 0;
}