Julian历法是用年份和当年的第几天来表示日期,程序本身不难,记录一下
#include <iostream>
using namespace std;
bool judge(int year);//判断年份是闰年还是平年
void print(int day,int *p,int year);//输出转化结果
int main()
{
int year=0,month=0,day=0;
cout<<"请输入Julian历法的年份";
cin>>year;
cout<<"请输入Julian历法的天数";
cin>>day;
int leapyear[13]={0,31,29,31,30,31,30,31,31,30,31,30,30};
int normalyear[13]={0,31,28,31,30,31,30,31,31,30,31,30,30};
if(judge(year))
{ int *p;p=leapyear;//使用指针并不必要,只是为了熟练指针知识
print (day,p,year);
}
else
{ int *p;p=normalyear;
print (day,p,year);
}
}
bool judge(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
return true;
else
return false;
}
void print(int day,int *p,int year)
{
int i=1;
for(;day>0;i++)
{day=day-p[i];}
cout<<year<<"年"<<i-1<<"月"<<day+p[i-1]<<"日";//此处i实际上是多加了一次的,稍作处理后输出
}