萌新再次求调儒略日
查看原帖
萌新再次求调儒略日
432183
JoeBiden2020楼主2021/10/5 16:12
#include <bits/stdc++.h>
using namespace std;
int q,r,y,m=1,d;
int monthdays2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
bool ifrun(int y){
	return !((y-1)%4);
}
int main(){
	ios::sync_with_stdio(false);
	cin>>q;
	do{
		monthdays2[2]=29; 
		m=1;y=4713;
		cin>>r;
		int i=1;
		while(r>366){//先减年 
			y--; 
			if(ifrun(y))r-=366;
			else r-=365;
		}
		while(monthdays2[i]<=r){//当还可以减去整月 
			r-=monthdays2[i];//减去 
			i++;
			if(i>12){//如果超过12月 
				y--;
				if(!ifrun(y))monthdays2[2]=28; //更改2月 
				else monthdays2[2]=29;
				i=1;
			}
		}
		if(y<-1584)r+=11;
		if(y==-1584){
			if(i>10)r+=11;
			if(i==10){
				if(r>=4)r+=11;
			} 
		}
		if(r>monthdays2[i]){
			r-=monthdays2[i]; 
			i++;
		}
		if(y>0){
			cout<<r+1<<" "<<i<<" "<<y<<" BC\n";
			continue;
		}
		if(y<0){
			y=-y+1;
		}
		cout<<r+1<<" "<<i<<" "<<y<<"\n";
	}while(--q);
}
```有的时候会少一天,改成了先减年,但是。。(哭
2021/10/5 16:12
加载中...