#include <>
#inelude <>
#include <>
# defi ne
Length
80
〃长为80
# defi ne
Width
25
〃宽为25
#t, &Month_Next);
curs_set(FALSE);
break;
case F:
QueryDate(&Year_Next, &Month_Next);
curs_set(FALSE);
break;
default:
break;
}
OutputCalendar(Year_Next, Month_Next);
}
endwin();
return 0;
}
〃运用蔡勒公式计算某天星期几
int Week_Day(unsigned int year,unsigned int month,unsigned int day) {
int week_t = 0;
unsigned int y = 0, c = 0, m = 0, d = 0;
if( month == 1 11 month == 2 )
{
c = (year -1) / 100;
y = (year ・ 1) % 100;
m = month + 12;
d = day;
}
else
{
c = year / 100;
y = year % 100;
m = month;
d = day;
}
〃蔡勒(Zeller)公式:w=y+[y/4]+[c/4]-2c+[26(m+l)/10]+d-l week_t = y + y/ 4 + c/ 4- 2*c + 26*(m + l)/10 + d-l;
week_t = week_t >= 0 ? (week_t % 刀:(week_t % 7 + 7);
return week_t;
}
〃判断闰年
int Leap_Year(int year)
{
if ((year % 4 == 0) && (year % 100 != 0) 11 year % 400 == 0) return TRUE;
else
return FALSE;
}
〃查询口期
int QueryDate(int *yearz int *month)
echo(); //echo() and noecho():此函式用来控制
从键盘输入字元时是否将字元显示在终端机上
curs_set(TRUE);
attron(COLOR_PAIR(7)|A_BOLD);
mvprintw( 1,53/Please enter date :");
do
{
move(l,72); 〃光标回到原处
clrtoeol();
scan w(,,%d%d,,,year,month);
}while( (*year) > Max_Year 11 (*year) < Min^Year 11 (*month) > 12 11 (*month) < 1);
no echo();
}
〃得到现在口期
int GetDate()
{
time_t timep;
struct tm *p;
time( &timep);
p =
万年历代码 来自淘豆网m.daumloan.com转载请标明出处.