//目标:输出当天的前一天
#include <stdio.h>
#include <stdlib.h>
int Is_Leag(int Year);
int Put_BeforDay(int Year, int Mon, int Day, int flag);
int main(void)
{
int Year = 0;
int Mon = 0;
int Day = 0;
int flag = 0;
printf("请输入日期信息,年,月,日,以逗号隔开\n");
scanf_s("%d,%d,%d", &Year, &Mon, &Day);
flag = Is_Leag(Year);
while (0 == Put_BeforDay(Year, Mon, Day, flag))
{
printf("你输入的信息有误,请重新输入日期信息,年,月,日,以逗号隔开\n");
scanf_s("%d,%d,%d", &Year, &Mon, &Day);
}
system("pause");
return 0;
}
int Is_Leag(int Year)
{
if ((Year % 4 == 0 && Year % 100 != 0) || (Year % 400 == 0))
{
return 1;
}
else
{
return 0;
}
}
int Put_BeforDay(int Year, int Mon, int Day, int flag)
{
int Moner[2][12] = { { 31,28,31,30,31,30,31,31,30,31,30,31 },
{ 31,29,31,30,31,30,31,31,30,31,30,31 } };
int mon = 0;
mon = Mon - 1;
if ((0 < Mon) && (Mon < 13) && (0 < Day) && (Day< 32))
{
if (1<Day && Day <= Moner[flag][mon])
{
Day = Day - 1;
printf("%d,%d,%d", Year, Mon, Day);
return 1;
}
if (Day == 1)
{
Mon = Mon - 1;
if (Mon < 1)
{
Year = Year - 1;
printf("%d,%d,%d", Year, 12, 31);
}
else
{
Day = Moner[flag][mon - 1];
printf("%d,%d,%d", Year, Mon, Day);
}
return 1;
}
if (Day > Moner[flag][mon])
{
return 0;
}
}
else
{
return 0;
}
}
输出前一天
最新推荐文章于 2020-10-19 18:22:59 发布