c年历
# include & lttime.h & gt
# include & ltstdlib.h & gt
//打印当前年份的日历,并输出到以您的学号命名的文件夹下的文件名。
const char输出文件名!\n“,年,开始_年);
返回;
}
/*检查输入的月份*/
if(月份& lt0 ||月& gt12)
{
printf(“非法月份:%d!月份必须在范围内!\n“,年,开始_年);
返回;
}
/* * * * *开始打印日历* * * * * * * * * * * * *
/*日历年度标题*/
printf(“日历%d\n“,年份);
for(start month = 1;开始月份& lt=12;start month+= showMonthNumPerLine)
{
showMonthNumPerLine =(start month+maxShowMonthNumPerLine)& lt;=12 ?maxShowMonthNumPerLine:(12-start month+1);
/* 1日历月头*/
for(月=开始月;月份& lt(start month+showMonthNumPerLine);月份++)
{
printf(“%-28s“,MONTH _ NAME【MONTH-1】);
}
printf(“\ n“);
/*双年日历的周首*/
for(月=开始月;月份& lt(start month+showMonthNumPerLine);月份++)
{
for(I = 0;我& lt7;i++)
{
printf(“% s“,WEEK _ NAME _ SHORT【I】);
}
printf(“”);
}
printf(“\ n“);
//分割线
for(月=开始月;月份& lt(start month+showMonthNumPerLine);月份++)
{
for(I = 0;我& lt4*7;i++)
{
printf(“_“);
}
printf(“”);
}
printf(“\ n“);
/*数据初始化*/
for(月=开始月;月份& lt(start month+showMonthNumPerLine);月份++)
{
//每月第一天的周
first day ofmonthinweekday【month-start month】= getfirst day ofmonthinweekday(year,month);
//一个月中的每一天
daysofmount【month-start month】= getdaysofmount(year,month);
//已经输出的天数计数器
days counter【month-start month】=-first day ofmonthinweekday【month-start month】+1;
}
/*每天安排3个日历*/
showMonthCounterPerLine = 0;
while(showMonthCounterPerLine & lt;showMonthNumPerLine)
{
for(月=开始月;月份& lt(start month+showMonthNumPerLine);月份++)
{
for(I = 0;我& lt7;i++)
{
if(days counter【month-start month】& lt;= 0 | | days counter【month-start month】& gt;每月第几天【月-月开始】)
{
printf(“% 4s“,““);
}
其他
{
printf(“% 3d“,days counter【month-start month】);
}
days counter【month-start month】++;
if(days counter【month-start month】& gt;每月第几天【月-月开始】)
{
showMonthCounterPerLine ++;
}
}
printf(“”);
}
printf(“\ n“);
}
//分割线
for(月=开始月;月份& lt(start month+showMonthNumPerLine);月份++)
{
for(I = 0;我& lt4*7;i++)
{
printf(“_“);
}
printf(“”);
}
printf(“\ n“);
}
}
int main(int argc,char *argv【】)
{
int年,月;
time_t t =时间(空);
struct TM * now = local time(& amp;t);
int choice
/*
1
显示任意年份和月份的日历。
以每行两个月的格式输出当年的年历。
以每行两个月的格式输出任何一年的年历。
*/
while(1)
{
printf(“××××××××××\ n“);
printf(“1输出当前月份的月历1 \ n“);
printf(“2输出当前年份历书2 \ n“);
printf(“3指定任意年份和月份的日历3 \ n“);
printf(“4指定任何年份的日历4 \ n“);
printf(“5 exits 5 \ n“);
printf(“××××××××××\ n“);
scanf(“% d“,& amp选择);
开关(选择)
{
案例1:
printMonthCalendar(现在-& gt;tm_year+1900,now-& gt;TM _ mon+1);
打破;
案例二:
春季日历(现在-& gt;tm_year+1900,2);
打破;
案例三:
Printf(“输入年和月(YYYY-MM):“);
scanf(“% d-% d“,& amp年份和年份。月);
printMonthCalendar(年、月);
打破;
案例4:
Printf(“输入年份(YYYY):“);
scanf(“% d-% d“,& amp年份);
printYearCalendar(year,2);
打破;
案例五:
退出(0);
默认值:
Printf(“选择错误,请重新选择\ n“);;
};
}
返回0;
}