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 星期几