搜索
bottom↓
楼主: hexixiaomao

一个非常简洁的 程序 计算2000~2099年任一天是星期几【恢复】

[复制链接]

出0入0汤圆

发表于 2010-10-8 22:19:57 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-8 23:11:04 | 显示全部楼层
马克一下

出0入25汤圆

发表于 2010-10-8 23:44:00 | 显示全部楼层
Mark!

出0入0汤圆

发表于 2010-10-9 00:01:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-9 08:48:11 | 显示全部楼层
mark~!!!

出0入0汤圆

发表于 2010-10-9 09:03:58 | 显示全部楼层
记上一号!

出0入0汤圆

发表于 2010-10-9 09:30:39 | 显示全部楼层
mark ,万年历

出0入0汤圆

发表于 2010-10-9 10:53:49 | 显示全部楼层
好贴!MARK

出0入0汤圆

发表于 2010-10-9 12:15:12 | 显示全部楼层
回复【27楼】jiangx
-----------------------------------------------------------------------
厉害!

出0入0汤圆

发表于 2010-10-9 13:15:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-9 16:30:04 | 显示全部楼层
算法太经典了~~~~~~~··

出0入0汤圆

发表于 2010-10-23 01:33:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-10-23 02:09:09 | 显示全部楼层
对楼主的算法进行优化,ICCAVR上测试最多只需67个周期

// 计算2000~2099年任一天星期几
// year    : 00-99
// month: 01-12
// day     : 01-31
unsigned char GetWeekFromDay(unsigned char year,unsigned char month,unsigned char day)  //共执行时间61-67T   
{
  unsigned char x;   //进入14T
  
  if( month < 3) { month += 12; if( year > 0 ) year--; else year = 4; }   //3-9T

  x = day + (month<<1) + (unsigned char)(((month+1u)*154u)>>8) + year + (year>>2);  //18T
       
  if(x>=112) x-=112; if(x>=56) x-=56; if(x>=28) x-=28; if(x>=14) x-=14; if(x>=7) x-=7;  //15T
       
  return x+1;     // 返回星期几(星期一用1表示,而星期天用7表示)  //11T
}

出0入0汤圆

发表于 2010-11-26 11:31:59 | 显示全部楼层
真有用、程序的思想真是可以

出0入0汤圆

发表于 2010-11-26 12:55:32 | 显示全部楼层
good

出0入0汤圆

发表于 2010-11-26 13:28:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-26 13:51:53 | 显示全部楼层
強!!

出0入0汤圆

发表于 2010-11-29 17:17:53 | 显示全部楼层
很好啊。。。

出0入0汤圆

发表于 2010-11-29 23:50:46 | 显示全部楼层
,mark

出0入0汤圆

发表于 2010-11-30 01:11:35 | 显示全部楼层
这个强!记下了

出0入0汤圆

发表于 2010-11-30 09:13:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-30 09:55:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-30 10:17:22 | 显示全部楼层
mark

出350入8汤圆

发表于 2010-11-30 10:28:05 | 显示全部楼层
mark

出0入4汤圆

发表于 2010-11-30 10:32:26 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-30 10:46:54 | 显示全部楼层

出0入0汤圆

发表于 2010-11-30 10:49:28 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-11-30 10:51:10 | 显示全部楼层

出0入0汤圆

发表于 2010-11-30 11:45:43 | 显示全部楼层
在Linux中GCC编译,运行不对啊,求救!!!

#include<stdio.h>

/*********************************************/
/* 计算2000~2099年任一天星期几              */
/* year    : 00-99                           */
/* month: 01-12                              */
/* day     : 01-31                           */  
/*********************************************/
unsigned char GetWeekFromDay(unsigned char year,unsigned char month,unsigned char day)
{
    if( month == 1 || month == 2 )   
    {
        month += 12;
        if( year> 0 )
            year--;
        else
            year = 4;
    }

    // 返回星期几(星期一用1表示,而星期天用7表示)
    return 1+(( day + 2*month + 3*(month+1)/5 + year + year/4 ) %7);
}  

int main(void)
{
        unsigned char num_week,num_year,num_month,num_day;
       
        scanf("%d%d%d",&num_year,&num_month,&num_day);
        num_week = GetWeekFromDay(num_year,num_month,num_day);
        printf("%d\n",&num_week);
        return 0;
}


(原文件名:week.jpg)

出0入0汤圆

发表于 2010-11-30 11:50:28 | 显示全部楼层
强,马克一下,以后用的上。

出0入0汤圆

发表于 2010-11-30 13:16:09 | 显示全部楼层
曾在十几年前辅导一个考国家二级的学生时,写过的一个程序。当时用的是FOX。后听说在考二时考出来了。

出0入0汤圆

发表于 2010-11-30 13:39:46 | 显示全部楼层
呵呵,要是农历也能算出来就好了,可惜不大可能

出0入0汤圆

发表于 2010-11-30 13:50:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-30 15:20:30 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-11-30 15:41:26 | 显示全部楼层
回复【28楼】wqsjob  
//我一直在用的代码,呵呵,至少我觉得比楼主的效率高,不论空间还是时间,另外,扩展个几千年也很容易。
//51的话,可以定义在code,不光省ram,还节省代码空间(少一条mov指令)。
uchar        weekdata[]={0,3,3,6,1,4,6,2,5,0,3,5};
/*2000-2099*/
unsigned char getweekday(unsigned char year,unsigned char month,unsigned char day)
{
        return        ((6+weekdata[month-1]+year+day+year/4)%7);
}
刚才忘了说了,这里0代表星期天,使用者应该加上日前限定的功能。<font color="#699bcd">
本贴被 wqsjob 编辑过,最后修改时间:2008-10-14,1......
-----------------------------------------------------------------------

这个算法在2000年的1月和2月计算中不对,应该多算了一天!

出0入0汤圆

发表于 2010-11-30 16:34:59 | 显示全部楼层
有机会研究一下

出0入0汤圆

发表于 2010-12-1 15:30:02 | 显示全部楼层
顶个

出0入0汤圆

发表于 2010-12-2 15:25:42 | 显示全部楼层
突然有个猥亵的想法,假如输入了一个错误的日期,会返回什么呢?

出0入0汤圆

发表于 2010-12-2 21:01:42 | 显示全部楼层
标记了

出0入0汤圆

发表于 2010-12-2 21:20:42 | 显示全部楼层
mark mark

出0入0汤圆

发表于 2010-12-2 21:55:12 | 显示全部楼层
不错

出0入0汤圆

发表于 2010-12-2 22:23:30 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-2 22:26:20 | 显示全部楼层
dd

出0入0汤圆

发表于 2010-12-2 22:50:52 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-3 17:24:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-3 18:31:25 | 显示全部楼层
强大!!!

出0入0汤圆

发表于 2010-12-4 00:13:55 | 显示全部楼层
mark!!

出0入0汤圆

发表于 2010-12-4 00:28:51 | 显示全部楼层
标记收藏

出0入0汤圆

发表于 2010-12-4 09:03:40 | 显示全部楼层
谢谢斑竹,先做个记号。。

出0入0汤圆

发表于 2010-12-4 09:41:27 | 显示全部楼层
太神奇了!以前觉得没有关系!

出0入0汤圆

发表于 2010-12-4 10:28:52 | 显示全部楼层
嗯。记号。

出0入0汤圆

发表于 2010-12-4 11:44:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-4 11:48:03 | 显示全部楼层
不错。记号。

出0入0汤圆

发表于 2010-12-4 21:56:40 | 显示全部楼层
不错 收下……

出0入0汤圆

发表于 2010-12-5 21:00:49 | 显示全部楼层
记得是有一个公式的。但是不知道为什么。

出0入24汤圆

发表于 2010-12-5 21:57:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-5 22:13:44 | 显示全部楼层
那天是星期几,很好玩啊!

出0入0汤圆

发表于 2010-12-5 22:14:52 | 显示全部楼层
必须记号!

出0入0汤圆

发表于 2010-12-5 22:24:20 | 显示全部楼层
很好。顶

出0入0汤圆

发表于 2010-12-5 22:36:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-5 23:08:47 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-5 23:17:43 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-6 16:23:51 | 显示全部楼层
mark.

出0入0汤圆

发表于 2010-12-6 16:28:32 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-6 16:30:43 | 显示全部楼层
标记下,以后有用的

出0入0汤圆

发表于 2010-12-6 18:36:42 | 显示全部楼层
MARK...............

出0入0汤圆

发表于 2010-12-6 21:19:38 | 显示全部楼层

出0入0汤圆

发表于 2010-12-7 12:32:16 | 显示全部楼层

出50入0汤圆

发表于 2010-12-7 14:32:36 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-7 16:52:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-7 17:08:30 | 显示全部楼层
mark and thank

出0入0汤圆

发表于 2010-12-7 17:47:47 | 显示全部楼层
mark and thank

出0入0汤圆

发表于 2010-12-7 22:56:58 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-7 23:12:07 | 显示全部楼层
好东西 记下

出0入0汤圆

发表于 2010-12-8 00:12:06 | 显示全部楼层
万年历的算法  不 错

出0入0汤圆

发表于 2010-12-8 03:23:14 | 显示全部楼层
晕,这是俺早年的垃圾帖!!!
http://www.hotpower.org/HotAjax/HotPower_HotAjax.html

搜索“星期公式”

出0入0汤圆

发表于 2010-12-8 03:29:59 | 显示全部楼层

(原文件名:HotPower_HotAjax.gif)


http://www.hotpower.org/HotAjax/HotPower_HotAjax.html

出0入0汤圆

发表于 2010-12-8 08:50:48 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-8 09:02:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-8 10:33:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-8 10:50:51 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-12-8 22:30:55 | 显示全部楼层
mark too...

出0入0汤圆

发表于 2010-12-27 08:08:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-27 08:24:16 | 显示全部楼层
记号

出0入0汤圆

发表于 2011-1-18 11:08:10 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-28 08:20:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-28 08:38:45 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-28 17:17:38 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-28 19:59:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-2-28 20:53:24 | 显示全部楼层
经典

出0入0汤圆

发表于 2011-2-28 23:39:29 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-14 11:25:03 | 显示全部楼层
这个好,记下。

出0入0汤圆

发表于 2011-3-14 12:52:06 | 显示全部楼层
日本地震使地球自转快了1.6us,100年内这个还有效,多来几次就不一定了。

出0入0汤圆

发表于 2011-3-14 13:09:52 | 显示全部楼层
这个确实比较强

出10入12汤圆

发表于 2011-3-14 13:20:25 | 显示全部楼层
只知道有关系

出0入0汤圆

发表于 2011-3-14 14:21:35 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-3-14 15:39:43 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-3-15 00:17:46 | 显示全部楼层
是够简洁的了顶一下

出0入0汤圆

发表于 2011-3-15 02:44:21 | 显示全部楼层
顶,够简洁的

出0入0汤圆

发表于 2011-3-15 08:08:49 | 显示全部楼层
mark 星期几
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-16 02:40

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表