文章

56

粉丝

0

获赞

60

访问

9.5k

头像
日期差值 题解:C++
P1290 上海交通大学/西北工业大学机试题
发布于2025年9月1日 18:25
阅读数 35

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

struct data{
	int y;
	int m;
	int d;
};

// 将年月日由字符串类型转换为int类型
int mChange(string s){
	int sum=0;
	for(int i=s.length()-1;i>=0;i--){
		sum+=(s[i]-'0')*pow(10,s.length()-i-1);
	}
	return sum;
}

// 判断是否为闰年
bool isRun(data a){
	if((a.y%4==0&&a.y%100!=0)||(a.y%400==0)){
		return true;
	}else{
		return false;
	}
} 

// 计算两个日期之间的天数差 
int mmCha(data a,data b){
	int sum=0,num[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	int ycha=(b.y-a.y)*365;
	int mcha=0,dcha=0;
	if(b.m>=a.m){
		for(int i=a.m;i<b.m;i++){
			mcha+=num[i-1];
		}
	}else{
		for(int i=b.m;i<a.m;i++){
			mcha+=num[i-1];
		}
	}
	dcha=b.d-a.d;
	sum=ycha+mcha+dcha;
	
	if(isRun(a)&&a.m<=2){
		sum++;
	}
	if(isRun(b)&&b.m>2){
		sum++;
	}	
	sum++;
	return sum;	
}

int main(){
	string s1,s2;
	while(cin>>s1>>s2){
		string s11,s12,s13,s21,s22,s23;
		for(int i=0;i<4;i++){
...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发