###http://my.csdn.net/hhhhhhhhhhkkkkkkkkkk的回复。如果该本人看到请理解,我只是想保存供大家好搜索。代码权是链接中的创作人所有。
#include"stdio.h"
void
main()
{
int
year, month, day;
printf
(
"请输入一个年、月、日:\n"
);
scanf_s(
"%d,%d,%d"
, &year, &month, &day);
if
(!((month >= 1) && (month <= 12)))
{
printf
(
"输入月错误"
);
goto
_exit;
}
int
monDay[12],preYear,preMon,preDay,afterYear,afterMon,afterDay;
bool
dYear =
false
;
monDay[0] = monDay[2] = monDay[4] = monDay[6] = monDay[7] = monDay[9] = monDay[11]=31;
monDay[3] = monDay[5] = monDay[8] = monDay[10] = 30;
monDay[1] = 28;
if
(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
{
dYear =
true
; monDay[2] = 29;
}
if
(!((day >= 1) && (day <= monDay[month-1])))
{
printf
(
"输入日错误"
);
goto
_exit;
}
preDay = day - 1;
preMon = month;
preYear = year;
if
(preDay < 1)
{
preMon--;
if
(preMon < 1)
{
preMon = 12;
preYear--;
}
preDay = monDay[preMon-1];
}
char
*beforeStr =
""
;
if
(preYear < 0){ beforeStr =
"公元前"
; preYear = -preYear; }
printf
(
"前一天:%s%d年%d月%d日\n"
, beforeStr,preYear, preMon, preDay);
afterDay = day + 1;
afterMon = month;
afterYear = year;
if
(afterDay > monDay[month-1])
{
afterDay = 1; afterMon++;
}
if
(afterMon > 12)
{
afterMon = 1;
afterYear++;
}
beforeStr =
""
;
if
(afterYear<0){ beforeStr =
"公元前"
; afterYear = -afterYear; }
printf
(
"后一天:%s%d年%d月%d日\n"
, beforeStr, afterYear, afterMon, afterDay);
_exit:
getchar
();
getchar
();
}