#include<stdio.h>
int birthdays();//计算从出生日到现在的总天数
int sum();//计算某一年到某一年的总天数
int count();//计算闰年与非闰年某一天为该年第几天
int number();//计算第n月m天为该年第几天的函数
void cheack(int num);//判断身体状态
int door = 0;
int main()
{
int Year1;
int Month1;
int Date1;
int Year2;
int Month2;
int Date2;
int Days=0;
printf("请输入您的出生日期:year-math-day\n");
scanf("%d-%d-%d",&Year1,&Month1,&Date1);
printf("请输入您当前的日期:\nyear-math-day\n");
scanf("%d-%d-%d",&Year2,&Month2,&Date2);
Days=birthdays(Year1,Year2,Month1,Month2,Date1,Date2);
if(door<1 && Days>0)
{
printf("今天是你出生后的第%d天\n",Days);
cheack(Days);
}
else if (door = 1 || Days < 0)
{
printf("输入的信息有误!");
}
}
int birthdays(int Year1,int Year2,int Month1,int Month2,int Date1,int Date2)
{
int Sumdays = 0;
if(Year1 <= Year2)
{
Sumdays = sum(Year1,Year2) + count(Year2,Month2,Date2) - count(Year1,Month1,Date1);
}
else if(Year1 > Year2)
{
door = 1;
}
return Sumdays;
}
int sum(int Year1,int Year2)
{
int n,Days = 0;
for(n = Year1;n < Year2;n++)
{
if (((n%100!=0) && (n%4==0)) || (n%400==0))
{
Days += 366;
}
else
{
Days += 365;
}
}
return Days;
}
int count(int Year,int Month,int Date)
{
int Days = 0;
int flg;
if ((Year%100!=0) && (Year%4==0) || (Year%400==0))
{
flg = 1;
if ((2==Month) && (Date>29))
{
door = 1;
}
Days += number(Month,Date,flg);
}
else
{
if ((2==Month) && (Date>28))
{
door = 1;
}
flg = 2;
Days += number(Month,Date,flg);
}
return Days;
}
int number(int Month,int Date,int flg)
{
int Days = 0;
int i = Month;
if (i == 1)
{
Days = Days + Date;
}
else if(i > 1)
{
for(i = 1;i < Month ;i++)
{
if (1==i || 3==i || 5==i || 7==i || 8==i || 10==i || 12==i)
{
if(Date > 31)
{
door = 1;
}
Days += 31;
}
else if (4==i || 6==i || 9==i|| 11==i)
{
if(Date > 30)
{
door = 1;
}
Days += 30;
}
if(2 == i)
{
if (1 == flg)//通过标志位来辨别是否闰年
{
Days += 29;
}
if(2 == flg)
{
Days += 28;
}
}
}
Days += Date;
}
return Days;
}
void cheack(int num)
{
int Power = num%23;
int Lively = num%28;
int Brains = num%33;
if (Power>0 && Power<=11)
{
printf("体力高潮期\n");
}
else
{
printf("体力低潮期\n");
}
if (Lively>0 && Power<=14)
{
printf("情绪高潮期\n");
}
else
{
printf("情绪低潮期\n");
}
if (Brains>0 && Brains<=16)
{
printf("体力高潮期\n");
}
else
{
printf("体力低潮期\n");
}
}