用指针表示日历
#include <stdio.h> bool isLeapYear(int);
int getWeekDay(int, int, int);
int main(int argc, char const *argv[])
{
int year;
int month;
printf("输入日期:");
scanf("%d%d", &year, &month);
printf("日 一 二 三 四 五 六\n");
int week = getWeekDay(year, month, 1);
int i;
for (i = 0; i < week; i++)
printf(" ");
int endDayOfMonth;
if (month==1||month==3||month==5||month==7||month==8||month==10||month==12)
endDayOfMonth=31;
else if (month==2)
{
if (isLeapYear(year))
endDayOfMonth=29;
else
endDayOfMonth=28;
}
else
endDayOfMonth=30;
int dayOfMonth=1;
while (dayOfMonth<=endDayOfMonth)
{
printf("%2d ", dayOfMonth);
dayOfMonth++;
if ((dayOfMonth+week-1)%7==0)
printf("\n");
}
printf("\n");
return 0;
}
bool isLeapYear(int year)
{
return year%400==0||(year%4==0&&year%100!=0);
}
int getWeekDay(int y, int m, int d)
{
int days=d;
int i;
for (i=1;i<m;i++)
{
if (i==1||i==3||i==5||i==7||i==8||i==10||i==12)
days=31;
else if (i==2)
{
if (isLeapYear(y))
days=29;
else
days=28;
}
else
days=30;
}
int day=(y-1+((y-1)/4)-((y-1)/100)+((y-1)/400)+days)%7;
return day;
}
怎么改成用指针表示