superyongzhe 发表于 2010-10-8 22:19:57

mark

maomaolang007 发表于 2010-10-8 23:11:04

马克一下

hecat 发表于 2010-10-8 23:44:00

Mark!

xjmlfm1 发表于 2010-10-9 00:01:38

mark

louy511 发表于 2010-10-9 08:48:11

mark~!!!

kunpeng032 发表于 2010-10-9 09:03:58

记上一号!

guo69 发表于 2010-10-9 09:30:39

mark ,万年历

liguohx 发表于 2010-10-9 10:53:49

好贴!MARK

hmzwm 发表于 2010-10-9 12:15:12

回复【27楼】jiangx
-----------------------------------------------------------------------
厉害!

247683915 发表于 2010-10-9 13:15:15

mark

jiabin1024 发表于 2010-10-9 16:30:04

算法太经典了~~~~~~~··

happywolf999 发表于 2010-10-23 01:33:10

mark

hsztc 发表于 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
}

H007 发表于 2010-11-26 11:31:59

真有用、程序的思想真是可以

cargle 发表于 2010-11-26 12:55:32

good

huzcmail 发表于 2010-11-26 13:28:49

mark

tokfkky 发表于 2010-11-26 13:51:53

強!!

victor275 发表于 2010-11-29 17:17:53

很好啊。。。

woshi728138 发表于 2010-11-29 23:50:46

,mark

hebin939 发表于 2010-11-30 01:11:35

这个强!记下了

jxia 发表于 2010-11-30 09:13:00

mark

usingavr 发表于 2010-11-30 09:55:35

mark

tt88050643 发表于 2010-11-30 10:17:22

mark

bmagui 发表于 2010-11-30 10:28:05

mark

Mingrui 发表于 2010-11-30 10:32:26

mark

realzls 发表于 2010-11-30 10:46:54

zjwznlz 发表于 2010-11-30 10:49:28

MARK

baogmwiqpl 发表于 2010-11-30 10:51:10

aladiu 发表于 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;
}

http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_601319RFUTBJ.jpg
(原文件名:week.jpg)

liusoldier 发表于 2010-11-30 11:50:28

强,马克一下,以后用的上。

fwluck 发表于 2010-11-30 13:16:09

曾在十几年前辅导一个考国家二级的学生时,写过的一个程序。当时用的是FOX。后听说在考二时考出来了。

wangyj173 发表于 2010-11-30 13:39:46

呵呵,要是农历也能算出来就好了,可惜不大可能

maizchen1 发表于 2010-11-30 13:50:29

mark

SamuelSiu 发表于 2010-11-30 15:20:30

MARK

mickeyye 发表于 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+year+day+year/4)%7);
}
刚才忘了说了,这里0代表星期天,使用者应该加上日前限定的功能。<font color="#699bcd">
本贴被 wqsjob 编辑过,最后修改时间:2008-10-14,1......
-----------------------------------------------------------------------

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

mengxiangkeji 发表于 2010-11-30 16:34:59

有机会研究一下

sfgqdmhbj 发表于 2010-12-1 15:30:02

顶个

xiaobenyi 发表于 2010-12-2 15:25:42

突然有个猥亵的想法,假如输入了一个错误的日期,会返回什么呢?

victor275 发表于 2010-12-2 21:01:42

标记了

csy198947 发表于 2010-12-2 21:20:42

mark mark

qianqianjunzhu 发表于 2010-12-2 21:55:12

不错

tick 发表于 2010-12-2 22:23:30

mark

dongzhiqing 发表于 2010-12-2 22:26:20

dd

411412 发表于 2010-12-2 22:50:52

mark

tonyone 发表于 2010-12-3 17:24:15

mark

zh_hj 发表于 2010-12-3 18:31:25

强大!!!

junmark 发表于 2010-12-4 00:13:55

mark!!

rockgoogle 发表于 2010-12-4 00:28:51

标记收藏

smallstone 发表于 2010-12-4 09:03:40

谢谢斑竹,先做个记号。。

fiab13 发表于 2010-12-4 09:41:27

太神奇了!以前觉得没有关系!

wenwu 发表于 2010-12-4 10:28:52

嗯。记号。

wwwdege 发表于 2010-12-4 11:44:49

mark

lsea 发表于 2010-12-4 11:48:03

不错。记号。

CHENXIAOTIAN 发表于 2010-12-4 21:56:40

不错 收下……

yilichen 发表于 2010-12-5 21:00:49

记得是有一个公式的。但是不知道为什么。

20061002838 发表于 2010-12-5 21:57:29

mark

neilxiang 发表于 2010-12-5 22:13:44

那天是星期几,很好玩啊!

hdd961140543 发表于 2010-12-5 22:14:52

必须记号!

phwj2006 发表于 2010-12-5 22:24:20

很好。顶

adai 发表于 2010-12-5 22:36:22

mark

lsy5110 发表于 2010-12-5 23:08:47

mark

ju748 发表于 2010-12-5 23:17:43

mark

intentydh 发表于 2010-12-6 16:23:51

mark.

allenjoe 发表于 2010-12-6 16:28:32

mark

wjhwpp 发表于 2010-12-6 16:30:43

标记下,以后有用的

xiaxuetianr 发表于 2010-12-6 18:36:42

MARK...............

PointRtos 发表于 2010-12-6 21:19:38

just_interest 发表于 2010-12-7 12:32:16

yuzr 发表于 2010-12-7 14:32:36

mark

afei8856 发表于 2010-12-7 16:52:22

mark

haso2007 发表于 2010-12-7 17:08:30

mark and thank

guke 发表于 2010-12-7 17:47:47

mark and thank

shui6556102 发表于 2010-12-7 22:56:58

mark

ounie 发表于 2010-12-7 23:12:07

好东西 记下

BINGSHUIHUO 发表于 2010-12-8 00:12:06

万年历的算法不 错

hotpower 发表于 2010-12-8 03:23:14

晕,这是俺早年的垃圾帖!!!
http://www.hotpower.org/HotAjax/HotPower_HotAjax.html

搜索“星期公式”

hotpower 发表于 2010-12-8 03:29:59

http://cache.amobbs.com/bbs_upload782111/files_35/ourdev_603094WX27LK.gif
(原文件名:HotPower_HotAjax.gif)


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

lghtjpu 发表于 2010-12-8 08:50:48

mark

zhuhanliang 发表于 2010-12-8 09:02:42

mark

lbhj310 发表于 2010-12-8 10:33:13

mark

szy19811114 发表于 2010-12-8 10:50:51

MARK

wxhland 发表于 2010-12-8 22:30:55

mark too...

xiaochaicn 发表于 2010-12-27 08:08:15

mark

mplk 发表于 2010-12-27 08:24:16

记号

intense 发表于 2011-1-18 11:08:10

mark

downtoearth 发表于 2011-2-28 08:20:38

mark

myhonour 发表于 2011-2-28 08:38:45

mark

wshini7316 发表于 2011-2-28 17:17:38

mark

qiujianben 发表于 2011-2-28 19:59:18

mark

jsls135 发表于 2011-2-28 20:53:24

经典

cbmjd 发表于 2011-2-28 23:39:29

mark

danceman_uk 发表于 2011-3-14 11:25:03

这个好,记下。

akman2012 发表于 2011-3-14 12:52:06

日本地震使地球自转快了1.6us,100年内这个还有效,多来几次就不一定了。

lqdjdy 发表于 2011-3-14 13:09:52

这个确实比较强

442502587 发表于 2011-3-14 13:20:25

只知道有关系

xiezheming 发表于 2011-3-14 14:21:35

mark

yywin1986 发表于 2011-3-14 15:39:43

学习

jovo 发表于 2011-3-15 00:17:46

是够简洁的了顶一下

xuhaikun 发表于 2011-3-15 02:44:21

顶,够简洁的

expressme 发表于 2011-3-15 08:08:49

mark 星期几
页: 1 2 [3] 4 5
查看完整版本: 一个非常简洁的 程序 计算2000~2099年任一天是星期几【恢复】