#include <stdlib.h>
#include <stdlib.h>
//最终输出函数 输入天数 输出是否结识帅哥或美女//最终输出函数 输入天数 输出是否结识帅哥或美女
void Proc(int days);
//获取从2006年1月1日至当前日期的所有天数
int GetDays(int year,int month,int day);
//判断 year年中的天数 判断闰年问题
int Getdaysofyear(int year);
//返回当前年中至该月 有多少天
int Getdaysofmonth(int year,int month);
int main(void)
{
//定义年月日 变量并获取用户输入
int y,m,d;
printf("请输入年:\n");
scanf("%d",&y);
printf("请输入月:\n");
scanf("%d",&m);
printf("请输入日:\n");
scanf("%d",&d);
Proc(GetDays(y,m,d));
return 0;
}
//最终输出函数 输入天数 输出是否结识帅哥或美女
void Proc(int days)
{
if (days %2 ==0)
{
printf("结识帅哥\n");
}
if (days %3 ==0)
{
printf("结识美女\n");
}
if (days %2 !=0 && days %3 !=0)
{
printf("没结识\n");
}
else if((days%3 == 0)&&(days%2 == 0))
printf("结识 美女+++帅哥\n");
}
//获取从2006年1月1日至当前日期的所有天数
int GetDays(int year,int month,int day)
{
int sum_daysofyear=0;
int sum_daysofmonth=0;
int allday=0;
for (int i = 2006; i < year; i++)
{
//当前年之前天数总和
sum_daysofyear+=Getdaysofyear(i);
}
//获取当前 至当前月的总天数
sum_daysofmonth=Getdaysofmonth(year,month);
//总天数=当前年之前几年中天数总数+至当前月的总天数+当前月的天数
allday=sum_daysofyear+sum_daysofmonth+day;
return allday;
}
//判断闰年 并返回该年包含天数
int Getdaysofyear(int year)
{
if (year % 4 ==0 && year %100 != 0)
{
return 366;
}
else if(year %400 ==0)
{
return 366;
}
else{
return 365;
}
}
//函数 获取至当当前月 总天数
int Getdaysofmonth(int year,int month)
{
int sum_daysofmonth=0;
// 每月天数
int yearMonths[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
// 每月天数 润
int leapyearMonths[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
//如果是闰年 计算至当前月之前月的总天数
if (year % 4 ==0 && year %100 != 0)
{
for (int i = 1; i < month; i++)
{
sum_daysofmonth+= leapyearMonths[i-1];
}
return sum_daysofmonth;
}
else if(year %400 ==0)
{
for (int i = 1; i < month; i++)
{
sum_daysofmonth+= leapyearMonths[i-1];
}
return sum_daysofmonth;
}
//如果不是闰年 计算至当前月之前月的总天数
else{
for (int i = 1; i < month; i++)
{
sum_daysofmonth+= yearMonths[i-1];
}
}
return sum_daysofmonth;
}
|
|