引言C语言作为一种历史悠久且功能强大的编程语言,在系统开发、嵌入式系统、游戏引擎等多个领域都有广泛应用。本文将带您一起探索如何使用C语言编程,轻松打造一个个人专属的电子万年历。一、万年历的基本功能在开...
C语言作为一种历史悠久且功能强大的编程语言,在系统开发、嵌入式系统、游戏引擎等多个领域都有广泛应用。本文将带您一起探索如何使用C语言编程,轻松打造一个个人专属的电子万年历。
在开始编程之前,我们需要明确万年历的基本功能:
以下是一个简单的万年历程序示例:
#include
#include
// 判断是否为闰年
int isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
// 获取某年某月的天数
int getDays(int year, int month) { int days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if (month == 2 && isLeapYear(year)) { return 29; } return days[month - 1];
}
// 计算星期几
int getWeek(int year, int month, int day) { int week[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 }; year -= month < 3; int weekDay = (year + year / 4 - year / 100 + year / 400 + week[month - 1] + day) % 7; return weekDay;
}
// 打印月历
void printMonth(int year, int month) { int days = getDays(year, month); int weekDay = getWeek(year, month, 1); printf("Sun Mon Tue Wed Thu Fri Sat\n"); for (int i = 0; i < weekDay; i++) { printf(" "); } for (int i = 1; i <= days; i++) { printf("%3d ", i); if ((weekDay + i) % 7 == 0) { printf("\n"); } } printf("\n");
}
// 主函数
int main() { int year, month, day; printf("请输入年份:"); scanf("%d", &year); printf("请输入月份:"); scanf("%d", &month); printf("请输入日期:"); scanf("%d", &day); if (year < 1 || month < 1 || month > 12 || day < 1 || day > getDays(year, month)) { printf("输入的日期有误!\n"); return 1; } printf("您输入的日期是:%d年%d月%d日,星期%d\n", year, month, day, getWeek(year, month, day)); printMonth(year, month); return 0;
} calendar.c。calendar.c所在的目录。gcc calendar.c -o calendar进行编译。./calendar运行程序。通过以上步骤,我们使用C语言编程成功打造了一个个人专属的电子万年历。这个程序可以判断闰年、计算星期几、打印月历等功能。您可以根据自己的需求进行扩展,例如添加时间显示、节假日提醒等功能。