万年历项目 3

小夏 时尚 更新 2024-02-03

第三部分首先实现第四步,如下图所示,定义 crt secure no warnings 1

#include

#define start_year 1900

int main()

printf("--- 欢迎来到 Easy Calendar System ---n");

int year, month, monthdays;

1.输入年月,判断输入的年份是否为闰年。

do {printf("请输入年份:");

scanf("%d", &year);

rewind(stdin);

while (year < start_year);

do {printf("请输入月份:");

scanf("%d", &month);

rewind(stdin);

while (month < 1 ||month > 12);

int isleapyear = 0;

if (year % 4 == 0 &&year % 100 != 0 ||year % 100 == 0) {

闰年。 isleapyear = 1;

printf("isleapyear=%d", isleapyear);

计算输入月份的天数。

switch (month) {

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

monthdays = 31;

break;

case 4:

case 6:

case 9:

case 11:

monthdays = 30;

break;

case 2:

if (isleapyear == 1) {

monthdays = 29;

else {

monthdays = 28;

break;

printf("monthdays=%d", monthdays);

3. 在每月的第一天计算星期几。

温馨提示:1)循环计算从1900年到进入年份的一年中的总天数;

2)要确定每年是闰年还是平年,闰年有366天,平年有365天;

3)计算输入月份与当年1月之间的天数,并将输入年份之前的天数相加;

4) 一周的第一天是根据 1900 年 1 月 1 日星期一计算的

第 x 天 = (1 + 总天数) %7;星期一到第 6 周,可以使用数字 1-6,数字 0 可以用来表示星期日。

int yeardays = 0;

for (int i = 0; i < year; i++)

if (i % 4 == 0 &&i % 100 != 0 ||i % 400 == 0) {

闰年。 yeardays += 366;

else {

平年。 yeardays += 365;

printf("yeardays=%d", yeardays);

int monthtotaldays = 0;

for (int i = 0; i < month; i++)

if (month == 1 ||month == 3 ||month == 5 ||month == 7 ||month == 8 ||month == 10 ||month == 12) {

monthtotaldays += 31;

else if (month == 4 ||month == 6 ||month == 9 ||month == 11) {

monthtotaldays += 30;

else if (month == 2) {

if (isleapyear == 1) {

monthtotaldays += 29;

else {

monthtotaldays += 28;

printf("monthtotaldays=%d", monthtotaldays);

int week = (yeardays + monthtotaldays + 1) %7;

printf("week=%d ", week);

4.以格式输出日历。

1) 按格式顺序输出:

周日、周一、周二、周三、周四、周五、周六。

2)循环输出空格,在输入月的第一天根据星期几确定空格数;

3)循环输出当月的所有日子;

printf("周日、周一、周二、周三、周四、周五、周六");

for (int i = 0; i < week; i++)

printf("\t");

for (int i = 1; i < monthdays; i++)

printf("%d\t", i);

将空格和输出日期视为一个整体,并在每次输出 7 个数字时换行。

if ((week + i) %7 == 0) {

printf("");

return 0;

测试结果如下,也在 2023 年 11 月进行了测试

日历中的 2023 年 11 月的第一天也是星期三。

实考最好多试几遍,大月、小月、平年闰年的二月都要求考。

相似文章

    新年的传说,“万年历”的由来!

    除了 年 和 习 是猛兽的传说外,还有一个 新年 的故事,这是春节的起源。相传,多年前,在定阳山脚下有一个小村庄,山水秀丽,在村子的斜坡上,建起了一座小石屋,少年在里面住了上万年。万年家境贫寒,只能靠捡柴挖药为生。那时候没有季节,庄稼人总是靠经验,有时他们不确定,如果庄稼长得不好,人们就没有饭吃了。...

    在没有万年历的情况下快速计算四大支柱的方法

    万年历是中国古代传说中最古老的阳历之一。为了纪念日历编纂者诞辰,周年。功德,古人将这门历法命名为 万年历 人们今天使用的万年历实际上是一本年历,它记录了特定阳历或阴历在特定时间范围内 例如年或更长时间 的日期。如果要追溯万年历的起源,故事就得从古代的商代说起。传说有名的樵夫叫万年,有一天,他上山砍柴...

    标题 女友年薪10万元,为父母奋斗3万元,郁闷7年

    标题 女友年薪万元,为父母奋斗万元,郁闷年 请点击 关注 按钮,以便我们继续为您推送类似文章,方便您参与讨论和分享。感谢您的支持,这是我们创作的动力 我是李晓明,今年岁,是一名普通的行业程序员。我每天都忙着写 有时我会见客户。我过着平凡而简单的生活,但这让我感到非常满足。更重要的是,我有一个女朋友叫...

    放弃300万年薪网红,选择3500元的国企,他选对了吗?

    近年来,互联网上出现了许多有影响力的人,他们以其多才多艺 出众的外观和独特的吸引力吸引了大量粉丝。丁臻的 流露出一种朴实和真诚,观众被他朴实的笑容所感动。然而,在众多网红中,有一位叫丁震的年轻藏族人,其受欢迎程度实在是与众不同。这 展现了丁真单纯的笑容,让人感受到一种纯粹的善良。他吸引粉丝的方式,不...

    30,000年前,古代人类制造并使用了“钻头”

    图为石钻工具,只有老鼠的一半大小,白色圆圈是用 指垫法 制作的 钻头 图为动物齿吊坠,中间孔为椭圆形,直径为毫米至毫米,采用 钻头 双面钻孔而成。这两件文物拓展了人们对旧石器时代的了解,留下了人类文明进步的珍贵记忆。图片由辽宁省文物考古研究所提供 鞍山博物馆展出的小孤山人生活场景模型。本报记者摄。新...