#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdbool.h>
int DaysOfMonth[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
const char* DayOfWeek[] = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" };
bool isLeapYear(int year);
int distance(int year1, int month1, int day1, int year2, int month2, int day2);
int weekday(int year, int month, int day);
void printCalendar(int year);
int main(void) {
int year;
printf("Please input the year whose calendear you want to know?\n");
scanf("%d", &year);
printCalendar(year);
return 0;
}
bool isLeapYear(int year) {
return year % 400 == 0 || year % 4 == 0 && year % 100 != 0;
}
int weekday(int year, int month, int day) {
int days = distance(1970, 1, 1, year, month, day);
return (4 + days) % 7;
}
int distance(int year1, int month1, int day1, int year2, int month2, int day2) {
int days = 0;
// 计算year1年份的天数
days += DaysOfMonth[month1] - day1;
if (isLeapYear(year1) && month1 == 2) {
days++;
}
for (int i = month1 + 1; i <= 12; i++) {
days += DaysOfMonth[i];
}
if (isLeapYear(year1) && month1 == 1) {
days++;
}
// 计算中间的年份的天数
for (int i = year1 + 1; i < year2; i++) {
days += 365;
if (isLeapYear(i)) {
days++;
}
}
// 计算year2年份的天数
for (int i = 1; i < month2; i++) {
days += DaysOfMonth[i];
}
if (isLeapYear(year2) && month2 > 2) {
days++;
}
days += day2;
// 如果 year1 == year2, 则多算了一整年的天数。
if (year1 == year2) {
days -= 365;
if (isLeapYear(year1)) {
days--;
}
}
return days;
}
void printCalendar(int year) {
if (isLeapYear(year)) {
DaysOfMonth[2]++;
}
printf("|=====================The Calendar of Year %d====================|\n", year);
for (int i = 1; i <= 6; i++) {
printf(": %2d SUN MON TUE WED THU FRI SAT %2d SUN MON TUE WED THU FRI SAT :\n", i, i + 6);
// 打印每个月的第一行
printf(": ");
int wd1 = weekday(year, i, 1);
int day1 = 1;
for (int j = 0; j < wd1; j++) {
printf(" ");
}
while (wd1 != 0 || day1 == 1) {
printf("%4d", day1++);
wd1 = (wd1 + 1) % 7;
}
printf(" ");
int wd2 = weekday(year, i + 6, 1);
int day2 = 1;
for (int j = 0; j < wd2; j++) {
printf(" ");
}
while (wd2 != 0 || day2 == 1) {
printf("%4d", day2++);
wd2 = (wd2 + 1) % 7;
}
printf(" :\n");
// 打印每个月的剩余行
while (day1 <= DaysOfMonth[i] || day2 <= DaysOfMonth[i + 6]) {
printf(": ");
int d1 = DaysOfMonth[i] - day1 + 1;
if (d1 <= 0) {
printf(" ");
}
else if (d1 < 7) {
for (int k = 1; k <= d1; k++) {
printf("%4d", day1++);
}
for (int k = 1; k <= 7 - d1; k++) {
printf(" ");
}
}
else {
for (int k = 1; k <= 7; k++) {
printf("%4d", day1++);
}
}
printf(" ");
int d2 = DaysOfMonth[i + 6] - day2 + 1;
if (d2 <= 0) {
printf(" ");
}
else if (d2 < 7) {
for (int k = 1; k <= d2; k++) {
printf("%4d", day2++);
}
for (int k = 1; k <= 7 - d2; k++) {
printf(" ");
}
}
else {
for (int k = 1; k <= 7; k++) {
printf("%4d", day2++);
}
}
printf(" :\n");
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
C语言实现万年历相关文件
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共22个文件
tlog:6个
pdb:2个
vcxproj:1个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
需积分: 0 1 下载量 185 浏览量
2024-03-11
11:10:59
上传
评论
收藏 595KB ZIP 举报
温馨提示
输入1970年之后任意一年的年份,输出该年的年历。对话如下: ``` 输入: Please input the year whose calendear you want to know? 2004 输出: |=====================The Calendar of Year 2004====================| : 1 SUN MON TUE WED THU FRI SAT 7 SUN MON TUE WED THU FRI SAT : : 1 2 3 1 2 3 : : 4 5 6 7 8 9 10 4 5 6 7 8 9 10 : : 11 12 13 14 15 16 17 11 12 13 14 15 16 17 : : 18 19 20 21 22 23 24 18 19 20
资源推荐
资源详情
资源评论
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![iso](https://img-home.csdnimg.cn/images/20210720083646.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/EXE.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 22 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/896f53f2a15f43c99810a69a8d31741f_weixin_45626953.jpg!1)
不好,商鞅要跑
- 粉丝: 422
- 资源: 11
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)