LQ0202 世纪末的星期日期计算

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0202 世纪末的星期日期计算相关的知识,希望对你有一定的参考价值。

题目来源:蓝桥杯2013初赛 Java A组A题

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

曾有邪教称 1999 年 12 月 31 日是世界末日。当然该谣言已经不攻自破。

还有人称今后的某个世纪末的 12 月 31 日,如果是星期一则会…

有趣的是,任何一个世纪末的年份的 12 月 31 日都不可能是星期一!!

于是,“谣言制造商”又修改为星期日…

1999 年的 12 月 31 日是星期五,请问:未来哪一个离我们最近的一个世纪末年(即 xx99 年)的 12 月 31 日正好是星期天(即星期日)?

请回答该年份(只写这个 4 位整数,不要写 12 月 31 等多余信息)

问题分析
日期计算问题,从2000年开始算。

AC的C语言程序如下:

/* LQ0202 世纪末的星期 */

#include <stdio.h>

int main()

    int year = 1999 + 1, day = 5;
    for (; ; year++) 
        day += 365 + ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0);
        if ((day %= 7) == 0 && year % 100 == 99) 
            printf("%d\\n", year);
            break;
        
    

    return 0;

以上是关于LQ0202 世纪末的星期日期计算的主要内容,如果未能解决你的问题,请参考以下文章

算法笔记_108:第四届蓝桥杯软件类省赛真题(JAVA软件开发本科A组)试题解答

蔡勒公式——根据年月日计算星期几

蓝桥杯真题世纪末的星期

蓝桥杯真题世纪末的星期

蔡勒公式不对啊???

如何在 SQL Server中 将日期格式化