mojinpan
发表于 2011-3-15 08:34:36
mark
madridlin
发表于 2011-3-15 09:13:26
mark
xiaoyigechaos
发表于 2011-3-22 22:33:30
好 最近要用
ilikerome
发表于 2011-3-22 23:56:49
if( year> 0 )
year--;
else
year = 4;
什么意思?year 当然大于0,那这个if还有必要?
hsztc
发表于 2011-3-23 00:14:56
year是一个单字节的数,2000年用0表示,2001年用1表示,2099年用99表示,所以year有可能等于0(2000年),而不大于0.
sunnyhook
发表于 2011-4-12 14:07:24
28楼那个最好!
eryueniao
发表于 2011-4-13 14:57:44
哈哈 厉害
292302877
发表于 2011-4-15 22:36:24
MARK 标记一下
number007cool
发表于 2011-4-17 20:11:26
牛人!
dhy13
发表于 2011-4-17 21:16:48
不错~mark一下~
215661599
发表于 2011-4-18 19:54:38
这个我要收藏了!
wangle315065
发表于 2011-4-18 19:59:53
mark
cunlingwang
发表于 2011-4-28 12:09:55
厉害呀!
kerrwang1982
发表于 2011-4-28 12:30:19
好贴。
Name_006
发表于 2011-4-28 14:27:39
标记下吧
mook_dj
发表于 2011-4-29 12:08:35
先记下,再试
love_zjb
发表于 2011-4-29 12:22:14
mark
TFTscreen
发表于 2011-4-29 12:43:47
路过,支持一下!
kbdcj2000
发表于 2011-4-29 13:37:53
mark
STC89C55
发表于 2011-4-29 14:07:39
好啊……
zhouyafeng
发表于 2011-4-29 21:49:17
MARK~~~
3050311118
发表于 2011-5-16 22:27:27
mark
pancake
发表于 2011-5-17 18:52:24
good
wzq666
发表于 2011-5-17 19:06:47
这好像学过,是数学知识
MZMMZMMZM
发表于 2011-5-17 19:35:56
MARK
CarlLee
发表于 2011-5-17 20:17:00
mark,有空看
wenjin0386
发表于 2011-5-17 20:18:29
mark
WillFeng
发表于 2011-5-17 20:42:26
mark
10086
发表于 2011-5-19 18:49:17
收下了
qhshilin
发表于 2011-5-19 19:47:46
mark!
hanhuliang
发表于 2011-5-19 20:27:22
mark
xiaotanlan
发表于 2011-5-21 15:40:25
把楼主位和28楼的算法分别标记为算法一和算法二,用VB做了个简单的计算小软件,发现怎么两个算法对有些日期算的不一样,大家都验证过了吗?我怎么算的有些不对呢。
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_641790JJ9YYV.jpg
(原文件名:????????.jpg)
计算小软件:点击此处下载 ourdev_641791XENNAG.rar(文件大小:4K) (原文件名:????????.rar)
软件没有加日前限定的功能,大家输的时候自己注意不要超出注释范围边界
日期范围注释为1~31
ljqlaq
发表于 2011-5-21 16:54:11
这个要顶。。。
xtx8962
发表于 2011-5-21 17:44:05
留个记号
zzh90513
发表于 2011-5-21 19:34:27
好
comway
发表于 2011-5-22 09:27:37
1+(( day + 2*month + 3*(month+1)/5 + year + year/4 ) %7),要再算上year%400就可以做到上下五千年了
jeazen
发表于 2011-5-24 22:28:39
mark,3q
psocfans
发表于 2011-5-24 22:37:20
mark
renwocai
发表于 2011-9-21 16:23:11
MARK
rafd
发表于 2011-9-21 16:44:27
收藏了
mvip
发表于 2011-9-21 17:13:11
收藏mark
nonez
发表于 2011-9-21 18:35:24
收藏了
tangxh
发表于 2011-9-21 18:45:17
刚好用到了收藏
scbing
发表于 2011-9-22 16:36:15
mark
NJ8888
发表于 2011-9-22 16:38:26
快2012了
hwxxp
发表于 2011-9-22 19:43:12
学习了
Tankng
发表于 2011-9-23 17:10:56
MARK
ustbzm
发表于 2011-9-23 17:22:05
很好,不错啊!
xibuol
发表于 2011-9-23 20:47:46
标记标记,谢谢了
hzc171
发表于 2011-9-24 19:33:03
M
q451993547
发表于 2011-9-25 16:54:19
mark
liushaozhen007
发表于 2011-9-28 14:00:20
程序简单,赞!
badodo
发表于 2011-10-12 22:36:47
mark
hsy168
发表于 2011-11-11 08:55:35
mark
jyjmaster
发表于 2011-11-11 09:17:49
MARK
chenqi
发表于 2011-11-11 10:34:24
mark
wjchao
发表于 2011-11-11 11:22:10
mark
BXAK
发表于 2011-11-11 12:12:33
计算2000~2099年任一天是星期几
wuguoyan
发表于 2011-11-11 13:01:23
mark
sfp208
发表于 2011-11-11 14:34:39
mark一下,嘿嘿
dragonfling
发表于 2011-11-11 15:32:41
刚才学习了下万年历算法,上边提到的算法2,再加个日期是否润年且月份小于3的判断的判断就完美了,如上述条件成立所算星期减1,否则不变!
Pony279
发表于 2011-11-12 02:59:32
mark~
顺便支持50楼~
xizi
发表于 2011-11-12 04:35:40
50楼+176楼,够强。
justSaar
发表于 2011-11-12 08:44:29
计算2000~2099年任一天是星期几 MARK
changhui0222
发表于 2011-11-12 08:45:17
MARK!
dhbighead
发表于 2011-11-12 10:27:28
MARK
1031706774
发表于 2011-11-12 10:41:44
学习了。。。
wpnx
发表于 2011-11-12 10:43:01
mark
bigwolf_chen
发表于 2011-11-12 11:07:53
mark
myfmfav
发表于 2011-11-30 00:57:20
很好很强大啊
tianheiGE
发表于 2011-11-30 08:29:25
强大,正用的上
XA144F
发表于 2011-11-30 09:05:07
这是我再几天前给单片机写一个时钟程序中自己设计的成,原来是计算过去了多少天的,当然也可以顺便计算是星期几。
相信大家一看就明白:
编译器CV2.04.4
flash int8u M_D3={0,31,28,31,30,31,30,31,31,30,31,30,31}; //平年
//计算YY年MM月DD日是星期几
int8u CALC_WEEK(int8u YY,int8u MM,int8u DD)
{
unsigned int sum;
int8u i,k;
sum=0;
for(i=0;i<YY;i++) //从2000年开始计算
{
sum+=365;
if((i%4)==0) //闰年修正,多一天
{
sum+=1;
}
}
for(i=1;i<MM;i++) //计算当前年过去月份中的天数
{
sum+=M_D3;
}
sum+=DD;
sum-=1;
if(((YY%4)==0)&&(MM>2)) //闰年修正,3月后多一天
{
sum+=1;
}
k=(sum%7+6)%7; //2000年1月1日是星期六,sum是过去的天数
return k; //返回的k就是星期数
}
sum最大值为65536,按照一年366天计算可以计算179年,所以能计算2000~2179年的任意一天的星期数。当然前提是地球自转公转是不变的。但实际上因为引力波造成的动能损失,这些速度都在减慢。
kerrwang1982
发表于 2011-11-30 09:27:39
回家用51试试,在单位用excel模拟太费劲了。
nangehongfei
发表于 2011-11-30 09:29:07
好东西呵呵
z421868436
发表于 2011-11-30 10:00:43
mark
renwocai
发表于 2011-11-30 13:08:08
记号
aidianzio
发表于 2011-11-30 13:49:40
标记。。。要用到了。。。
callbingover
发表于 2011-11-30 14:53:55
实用,好东东!
zhaoliang056
发表于 2011-11-30 17:03:38
mark
xyang18
发表于 2011-11-30 17:26:35
mark
CK345
发表于 2011-11-30 20:02:26
mark
yifeng009
发表于 2011-11-30 21:29:35
牛人辈出。。。
lin562794072
发表于 2011-11-30 21:43:19
都是牛人啊。
lklon
发表于 2011-11-30 22:57:08
留记号
chenxiaojun
发表于 2011-11-30 23:43:11
学习了
grantzhao
发表于 2011-11-30 23:46:27
没有最强,只有更强!
614229816
发表于 2011-12-9 07:57:52
回复【楼主位】hexixiaomao猫云澜
-----------------------------------------------------------------------
这个在网上收收能找到,其实它满足0000-9999年。
hnsfdxtanghao
发表于 2011-12-18 21:42:42
mark
Cannot_Make_It
发表于 2011-12-21 22:32:38
都很强呀
myfmfav
发表于 2012-1-11 15:51:29
回复【28楼】wqsjob
-----------------------------------------------------------------------
2012年1月11号是星期几?用你的算法(6+WeekData+year+day+year/4)%7;
uchar WeekData[]={0,3,3,6,1,4,6,2,5,0,3,5};
myfmfav
发表于 2012-1-11 15:58:46
回复【30楼】wisebaby 明君
-----------------------------------------------------------------------
简单是简单 但是有BUG 用他的算法算算2012年1月11号是星期几?
77695
发表于 2012-1-11 16:59:24
mark
Super_C
发表于 2012-1-12 11:45:04
mark.
ubuntuman
发表于 2012-1-12 13:01:19
mark
chenguanghua
发表于 2012-1-12 13:17:47
mark
o11o
发表于 2012-1-12 14:32:44
MARK:一个非常简洁的 程序 计算2000~2099年任一天是星期几
zl_123
发表于 2012-1-12 23:48:43
mark
xicheng412
发表于 2012-1-13 14:46:48
28楼的程序也很好,并且可以扩展到更大的范围。只要更多的预存数据就可以了。
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);
}
liu123748
发表于 2012-1-14 17:03:58
bucuo o
kang732816702
发表于 2012-1-16 10:04:41
多谢楼主,留个记号