文章

67

粉丝

207

获赞

29

访问

34.0k

头像
日期累加 题解:易错点:如果跨年需要重新判断平年和闰年
P1446 北京理工大学机试题
发布于2024年2月4日 10:57
阅读数 680

#include <iostream>
using namespace std;
int ifrun(int y){
	if((y%100!=0&&y%4==0)||(y%400==0)){
		return 1;
	}
	else return 0;
}
int main(){

	int n,y,m,d,add;
	cin >> n;
	for(int i=0;i<n;i++){
    cin >> y >> m >> d >>add;
	
		while(add>0){
		if(ifrun(y)==1){
		switch (m){
		case 1:if((d+add)>31) {m=m+1; add=add+d-32; d=1;} else {d=d+add;add=0;} break;
      	case 2:if((d+add)>29) {m=m+1; add=add+d-30; d=1;} else {d=d+add;add=0;} break;
		case 3:if((d+add)>31) {m=m+1; add=add+d-32; d=1;} else {d=d+add;add=0;} break;
        case 4:if((d+add)>30) {m=m+1; add=add+d-31; d=1;} else {d=d+add;add=0;} break;
        case 5:if((d+add)>31) {m=m+1; add=add+d-32; d=1;} else {d=d+add;add=0;} break;
		case 6:if((d+add)>30) {m=m+1; add=add+d-31; d=1;} else {d=d+add;add=0;} break;
		case 7:if((d+add)>31) {m=m+1; add=add+d-32; d=1;} else {d=d+add;add=0;} break;
		case 8:if((d+add)>31) {m=m+1; add=a...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发