想用c语言写一个关于日历的小程序,但是不知道如何计算星期几的问题,网上搜到一个基姆拉尔森公式:W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7,有人知道这个公式是怎么来的吗?还有别的计算方法吗?

展开全部
收起
4回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • 一桶冰水

    11人对此回答表示赞同

    这个公式是很好的啊,有点注意就行了
    W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
    在公式中d表示日期中的日数+1,m表示月份数,y表示年数。
    在公式中有个与其他公式不同的地方:
      把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算!!!
    展开
    11
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • fallingdown咋办

    10人对此回答表示赞同

    //正好前几天弄过一个计算任意年月日是星期几的小程序
    //是以2000年1月1日为参考日计算的,该日是星期六
    #include <stdio.h>
    int isly(int year)
    {
    return ((!(year%4))&&(year%100)||(!(year%400)));
    }
    int mtod(int m)
    {
    int n=0;
    switch(m)
    {
    展开
    10
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • 雪先生

    8人对此回答表示赞同

    公历一年一月一日是星期一,算出这一天和公历一年一月一日之间的天数就可以了
    还有一个算法就是,400年一个循环,也就是401年一月一日也是周一这样可以少算很多天
    再就是更简单的算法就是,一年是365天,364天正好是7的倍数,也就是一年多出一天来,这样再把闰年的那一天加上就可以了,这样可以算出每年的第一天是周几,
    year%=400; //这是去掉400年的循环
    z=(year+
    展开
    8
    0回复
    发布于 5年前

    评论(0)

    收起评论

  • 潇潇暮雨

    2人对此回答表示赞同

    我的曾经的做法:我先确定一天是星期几,比如2011.11.11是星期五,那么计算当天与2011.11.11相差多少天,△day%7,如果为0,那么今天就是星期五,以此类推!
    展开
    2
    0回复
    发布于 5年前

    评论(0)

    收起评论

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部