nihao7761吧 关注:26贴子:4,545
  • 12回复贴,共1

莫兹罗公式

只看楼主收藏回复

莫兹罗公式:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 c:世纪-1(前两位数) y:年(后两位数) m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算) d:日 [ ]代表取整,即只要整数部分
之前看夏日大作战里看到的
这个东西真是很厉害。
非常厉害。


1楼2010-07-09 16:39回复
    用途是 算任意一天是星期几


    2楼2010-07-09 16:40
    回复
      main()
      {
           int y,m,d,w,c,i=1;
           printf("year   ");     scanf("%d",&y);
           printf("month ");     scanf("%d",&m);
           printf("day    ");     scanf("%d",&d);
           while(i==1)
           {
               if    (      (y%4!=0&&m>0&&m!=2&&m<13&&d>0&&d<32)
                        ||(y%4!=0&&m==2&&d>0&&d<29)
                        ||(y%4==0&&m>0&&m!=2&&m<13&&d>0&&d<32)
                        ||(y%4==0&&m==2&&d>0&&d<30)                )
               {
                   c=y/100;
                   y=y-100*c;
                   if (m<3)
                   {
                   y=y-1;
                   m=m+12;
                   }
                   w=y+y/4;
                   w=w+c/4;
                   w=w-2*c+26*(m+1)/10+d-1;
                   w=w%7;
                   switch(w)
                   {
                    case 0:printf("Sunday");break;
                    case 1:printf("Monday");break;
                    case 2:printf("Tuesday");break;
                    case 3:printf("Wednesday");break;
                    case 4:printf("Thursday");break;
                    case 5:printf("Friday");break;
                    default:printf("Saturday");
                   }
               }
               else
               {
               printf("error \n \n");
               }
           printf("\n\nyear   ");     scanf("%d",&y);
           printf("month ");     scanf("%d",&m);
           printf("day    ");     scanf("%d",&d);
           }
           getch();
      }
      刚才做的程序


      3楼2010-07-09 16:46
      回复
        这东西,怎么总觉得好像是小学希望杯教过的啊……


        IP属地:云南4楼2010-07-11 15:05
        回复
          回复:4楼
          我是刚刚知道的


          5楼2010-07-11 15:06
          回复
            为何把1月和2月 算在前一年?
            在世界文化统一之前,世界各地是有很大差别,现在这个


            IP属地:天津6楼2010-07-11 17:41
            回复
              原来不是日期法


              IP属地:天津7楼2010-07-11 17:44
              回复
                回复:8楼
                米有老师,
                因为不知道可以写成 while(1)
                看了你发的那个后,才知道的


                9楼2010-07-11 18:11
                回复
                  自学是非常困难的 很多东西都是前人经历的惨痛教训换来的


                  IP属地:天津10楼2010-07-11 18:39
                  回复
                    已经有老师了。。。
                    盯。


                    11楼2010-07-11 20:44
                    回复
                      唔 你在学c语言 估计学懂了指针 就差不多该学其他的了 也不需太深入
                      行指针和指针数组以及二级指针,你没必要学的,太费脑子。
                      在我国软件编程方面,因为盗版严重,所以难以盈利,大多都从事网络设计。


                      IP属地:天津12楼2010-07-11 21:47
                      回复
                        要去学的话,一定能学好的。


                        13楼2010-07-12 19:54
                        回复
                          当然 现在的热门就是网站管理和设计以及数据管理


                          IP属地:天津14楼2010-07-12 20:42
                          回复