C/C++ code/*
============================================================================
Name : for_infinite.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include
#include
#include
typedef enum
{
MONDAY = 1,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY = 0
}WeekDays;
#define NOT_LEAP_YEAR_DAYS 365
bool is_friday(WeekDays first_day);
WeekDays get_first_day(int month, WeekDays day);
void print_pagehost_bigaunt_days(WeekDays today)
{
//
int bigaunt_month[13] = {0};
int month = 1;
int i_index = 0;
for(; month <= 12; ++month)
{
if(is_friday(today))
{
bigaunt_month[i_index] = month;
++i_index;
}
today = get_first_day(month, today);
}
printf("page host big aunt month is:");
int i_loop = 0;
for(; i_loop < sizeof(bigaunt_month)/sizeof(int); ++i_loop)
{
if(bigaunt_month[i_loop])
{
printf("%d ", bigaunt_month[i_loop]);
}
}
printf("\n");
}
//first_day该月1号为星期几
bool is_friday(WeekDays first_day)
{
return ((first_day + 12) % 7) == FRIDAY;
}
//month月份 day当月一号为星期几 返回下月1号为星期几
WeekDays get_first_day(int month, WeekDays day)
{
switch (month)
{
case 1:
return (day + 31)%7;
case 2:
return (day + 29)%7;
case 3:
return (day + 31)%7;
case 4:
return (day + 30)%7;
case 5:
return (day + 31)%7;
case 6:
return (day + 30)%7;
case 7:
return (day + 31)%7;
case 8:
return (day + 31)%7;
case 9:
return (day + 30)%7;
case 10:
return (day + 31)%7;
case 11:
return (day + 30)%7;
case 12:
return (day + 31)%7;
}
}
int main(int argc, char** argv)
{
print_pagehost_bigaunt_days(0);
}