level 14
一、自定义函数 得出星期几
先说原理:
1752年及以前,凡能被4整除的都算闰年.
1752年9月14号以后,进行校正,1752年以后,新的闰年规则 能被4整除但不能被100整除或是能被400整除和年是闰年。
" 0 31 59 90120
15118121224
3273304334" 大家可能要问,其实这里是某月以前月份的总天数,我用字符表示的,大家可以用数组或是其他的,0,31,59,90...334这样的格式。
用blitzplus弄了下,和我想的结果不一样,所以我重新做了下。大家可以看看,如果用QB编写的话,可以将Float 换成VAL 作用是将字符转换成数字。其他大家应该能看懂吧。。。
代码:
Print week("07-14-2012")
WaitKey
End
Function week% (d$)
year = Float(Mid$(d$, 7, 4))
m = Float(d$)
day = Float(Mid$(d$, 4, 2))
r = ((year Mod 4) = 0 And (year Mod 100) <> 0) Or (year Mod 400) = 0
century = (year - 1) / 100 - 17 ; /* 整百年 */
count = (year - 1) * 365 + (year - 1) / 4 ; /* 先将能被4整除的都算闰年 */
count = count +Float(Mid$(" 0 31 59 90120
15118121224
3273304334",m*3,3) +r*(m>2)+ day) ; /* 月、日 */
count = count -(11 + century) ; /* 校正11天,并除去所有的整百年 */
count = count +(century + 1) / 4 ; /* 补上整百年中的闰年 */
week% = (count+5) Mod 7
Return week
End Function
2014年01月22日 02点01分
