日历
编写程序实现打印某指定年份日历功能
日历。
编写一个程序来生成用户输入的一年的日历。
一年中的月份由整数1-12标识。一周中的几天用整数0-6表示。
#define Sunday 0
#define Monday 1
#define Tuesday 2
#define Wednesday 3
#define Thursday 4
#define Friday 5
#define Saturday 6
main()函数如下所示,无需修改:
int main() {
int year;
GiveInstructions(); /*prints out instructions to the user*/
year = GetYearFromUser(); /*reads in a year from the user*/
PrintCalendar(year); /* prints a calendar for an entire year*/
return 0;
}
如果用户在1900年之前输入一年,GetYearFromUser()函数应让用户再次输入。
以下为可供参考截图:
提示:
(1) 1900年1月1日是星期一。因此,工作日=1;
(2) 您可以使用函数获取指定年份的天数,并使用switch获取月份的天数。在这里,您应该使用一个名为IsLeapYear(int-year)的函数来处理闰年;
(3) 你可以从1900年1月1日开始计算,得到指定月份的星期几
(4) weekday = (weekday + ndays) % 7;
/*
Name:programme4.c
Author:祁麟
Copyright:BJTU | school of software
Date:2020/10/31
Description: Generate a calendar for a year entered by the user.
*/
#include <stdio.h>
#define Sunday 0
#define Monday 1
#define Tuesday 2
#define Wednesday 3
#define Thursday 4
#define Friday 5
#define Saturday 6
//函数声明
void GiveInstruction(void); //显示输入提示
int GetYearFromUser(void); //读入年份
void PrintCalendar(int year); //打印一年的日历
void printMonth(int month,int year); //逐月打印日历
void IndentFirstLine(int weekday); //每月首日前空格输出
char *MonthName(int month); //每月标题