Board logo

标题: [日期时间] 批处理万年历(包括农历日期) [打印本页]

作者: foxJL    时间: 2008-1-13 16:45     标题: 批处理万年历(包括农历日期)


____________________________版主提醒____________________________

  为了避免影响技术讨论、提高看帖的舒适性,请大家不要在此帖下跟
无实质内容的口水帖,特别是纯顶、纯支持、纯感谢、路过之类的帖子,
管理人员将不定期清理此类回帖,请大家多参与讨论少灌水,与人方便,
终将给自己带来方便,谢谢合作。
________________________________________________________________
  1. :: 月历查询工具 最初发表于CN-DOS
  2. :: 原创:foxjl  更新:namejm, qzwqzw,foxjl
  3. :: 计算农历日期部分思路及算法来自"趣味东"
  4. :: 输入的日期格式为:年-月-日(-可以替换为:、/,可以混用)
  5. :: 在日历里面,★=当天
  6. :: 支持多种格式的日期输入:
  7. :: ① 若只输入一个数,则认为是查询当年月份,自动截取后两位数字查询,★标在1日上;
  8. :: ② 若输入两个数,则认为是查询年和月,★标在1日上;
  9. :: ③ 输全的话,★标在指定日期上
  10. :: 关于年份的转换:
  11. :: ① 若年份上输入的数字少于三位,则作如下转换:
  12. ::     50~99判定为19xx
  13. ::     0~49判定为20xx
  14. :: ② 若输入的年份数字超过两位,则截取后四位字符(不足部分在高位补0),
  15. ::    按 ① 的规则计算该年份的日期;
  16. :: 07-08-04 增加针对阳历的生肖及干支年计算;修改错误日期循环提示的BUG.
  17. :: 08-01-13 增加推算农历日期的功能,会有一天左右误差。
  18. @echo off
  19. color 1f
  20. mode con cols=40 lines=20
  21. setlocal enabledelayedexpansion
  22. set str=日一二三四五六七八九
  23. set sdate=%date%
  24. :Main
  25. cls&echo.
  26. :: 日期提取、格式化与校验
  27. for /f "tokens=1,2,3 delims=-/: " %%i in ("%sdate%") do (
  28.     (set sy=%%i) && (set sm=%%j) && (set sd=%%k)
  29. )
  30. if not defined sd set sd=1
  31. if not defined sm set sm=%sy%&set sy=%date:~0,4%
  32. (set sy=0000%sy%) && (set sm=00%sm%) && (set sd=00%sd%)
  33. (set sy=%sy:~-4%) && (set sm=%sm:~-2%) && (set sd=%sd:~-2%)
  34. set /a y=1%sy%-10000, m=1%sm%-100, d=1%sd%-100 2>nul
  35. if errorlevel 9167 goto Error
  36. if %y% lss 100 (
  37.     if %y% lss 50 (set /a y+=2000) else (set /a y+=1900)
  38.     set sy=!y!
  39. )
  40. if %m% lss 13 if %d% lss 32 goto Calc
  41. :Error
  42. echo.错误的日期.
  43. pause>nul
  44. cd.
  45. set sdate=%date%
  46. goto Main
  47. :Calc
  48. ::计算农历部分
  49. set/a Q=(y-1901)/4
  50. set/a R=y-1901-4*Q
  51. set n=0
  52. for %%i in (0,31,59,90,120,151,181,212,243,273,304,334) do (
  53. set /a n+=1
  54. if %m% equ !n! set z=%%i)
  55. set /a leap="^!(y%%4) & ^!(^!(y%%100)) | ^!(y%%400)"
  56. if %m% gtr 2 (if %leap% equ 0 (set /a z-=1) else (set /a z+=leap))
  57. set/a n=(140*Q+106*(R+1)+z*10+d*10)/295,H=(140*Q+106*(R+1)+z*10+d*10-295*n)/10
  58. if %h% equ 0 set h=29
  59. if %h% leq 10 (if %h% equ 10 (set h=初十) else (set h=初%h%)) else (set h=%h:~0,1%十%h:~-1%号)
  60. for /l %%i in (1,1,9) do (call set h=%%h:%%i=!str:~%%i,1!%%)
  61. set h=%h:0=%
  62. :: 计算生肖及干支年
  63. set sx=猴鸡狗猪鼠牛虎兔龙蛇马羊
  64. set tg=庚辛壬癸甲乙丙丁戊己
  65. set dz=申酉戌亥子丑寅卯辰巳午未
  66. set /a sxnum=%sy% %% 12
  67. set /a tgnum=%sy:~-1%
  68. title 农历!tg:~%tgnum%,1!!dz:~%sxnum%,1!年 生肖:!sx:~%sxnum%,1! 农历:%h%
  69. :: 计算每个月的天数
  70. set days=31
  71. for %%i in (4 6 9 11) do if %m% equ %%i set days=30
  72. :: 计算2月份的偏差
  73. set /a leap="^!(y%%4) & ^!(^!(y%%100)) | ^!(y%%400)"
  74. if %m% equ 2 set /a days=28+%leap%
  75. if %m% leq 2 (set /a y-=1& set /a m+=12)
  76. :: 计算指定日期的星期数
  77. set /a w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%%7
  78. echo.  %sy%年%sm%月   日期:%sy%-%sm%-%sd%,星期!str:~%w%,1!
  79. echo.
  80. :: 生成月历
  81. set /a wb=(w+35-d) %% 7, we=wb+days+1, day=1
  82. echo.    日   一   二   三   四   五   六
  83. echo. ━━━━━━━━━━━━━━━━━━━
  84. set /p= <nul
  85. for /l %%i in (0,1,37) do (
  86.     set "temp=  "
  87.     if %%i GTR %wb% if %%i LSS %we% (
  88.         set temp= !day!
  89.         set temp=!temp:~-2!
  90.         if !d! EQU !day! set temp=★
  91.         set /a day+=1
  92.     )
  93.     set /p=   !temp!<nul
  94.     set /a "wm=(%%i+1)%%7"
  95.     if !wm! equ 0 echo.&echo.&set /p= <nul
  96. )
  97. echo.
  98. echo  ━━━━━━━━━━━━━━━━━━━
  99. echo.  输入日期可查询当日星期并显示当月月历
  100. echo.
  101. set sdate=
  102. set /p sdate=  格式如:2007-02-03,[回车]退出:
  103. if defined sdate goto Main
复制代码
以下是各计算部分算法:
  1. 计算星期:
  2. 基姆拉尔森计算公式
  3.       W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7
  4.       在公式中d表示日期中的日数+1,m表示月份数,y表示年数。
  5. 注意:在公式中有个与其他公式不同的地方:
  6.               把一月和二月看成是上一年的十三月和十四月,
  7. 例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
复制代码
  1. 生肖及干支年计算方法是:
  2. 出生公元年数÷12,然后根据除得的商的余数,对照生肖排列就马上可以知道。
  3. 生肖排列是:猴(0)、鸡(1)、狗(2)、猪(3)、鼠(4)、牛(5)、虎(6)、兔(7)、龙(8)、蛇(9)、马(10)、羊(11)。
  4. 天干地支算法:
  5. 首先要能记住十大天干和十二地支,
  6. 十天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸;
  7. 十二地支:子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥;
  8. 天干地支纪年法首先是天干在前,地支在后,比如今年2005就为-乙酉年,先来算算天干,有个公式:
  9. 4、 5、 6、 7、 8、 9、 0、 1、 2、 3 对应的十天干就是
  10. 甲、乙、丙、丁、戊、己、庚、辛、壬、癸,
  11. 数字为年代的最后的一位数字,比如今年是2005,最后一位是5,对应的天干就是乙;
  12. 地支的算法:用年代数除以12,后面的余数就代表某个地支,余数分别为:
  13.             4、 5、 6、 7、 8、 9、 10、 11、 0、 1、 2、 3,
  14. 代表地支为:子、丑、寅、卯、辰、巳、午、 未、 申、酉、戌、亥,
  15. 比如2005年为例:年代末尾数为5,对应的天干为乙,2005除以12,余数为1,对应的地支为酉,所以2005年为乙酉年。
复制代码
  1. 农历日期部分的算法是:
  2. 阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十 九日(大月为三十日)。然而目前记时通常用阳历日期表达,如欲将阳历日期换算成阴历日期可以用以下两种方法:其一是查《新编万年历》,如查1984年6月8日是阴历几日?翻开万年历6月10日是阴历十一,则逆推6月8日是阴历初九。其二可以利用公式推算阴历日期:
  3. 设:公元年数-1977(或1901)=4Q+R
  4. 则:阴历日期=14Q+10.6(R+1)+年内日期序数-29.5n
  5. (注:式中Q、R、n均为自然数,R<4)
  6. 例:1994年5月7日的阴历日期为:
  7. 1994-1977=17=4×4+1
  8. 故:Q=4,R=1 则:5月7日的阴历日期为:
  9. 14×4+10.6(1+1)+(31+28+31+30+7)-29.5n
  10. =204.2- 29.5n
  11. 然后用29.5去除204.2得商数6......27.2,6即是n值,余数27即是阴历二十七日。
复制代码

作者: 随风    时间: 2008-1-13 17:27

强啊!
一直想作个作不出,还是你厉害,佩服,有空研究研究你的代码。。
美中不足,显示阴历时,怎么没有月份显示?阴历和阳历的月份不一定都是一样的吧?
作者: foxJL    时间: 2008-1-13 17:59

是啊.暂时只能算出农历日期呵..
作者: youxi01    时间: 2008-1-13 18:15

非常不错,想不加分都忍不住啊
作者: novaa    时间: 2008-1-13 19:08

强大啊。!
呵呵。
作者: ieutk    时间: 2008-1-13 20:53

强~~!

界面也不错,可以加入精华贴咯
作者: namejm    时间: 2008-1-13 22:14

  报个bug,暂时没时间去找原因:当输入单个的数字时,会提示找不到操作数。
作者: foxJL    时间: 2008-1-13 22:57

原帖由 namejm 于 2008-1-13 22:14 发表
  报个bug,暂时没时间去找原因:当输入单个的数字时,会提示找不到操作数。

多谢提示!原因已经找到了,代码已经在顶楼更新.
其实这个脚本有你的大半功劳,我独自发表到原创代码,我似乎有点厚脸皮了.见谅!
作者: youxi01    时间: 2008-1-13 23:45

忍不住,决定加精!!
作者: namejm    时间: 2008-1-14 13:00

  把原创归到我的名下不太恰当,我只是修改了其中的代码而已,创意和主体代码都是你写的,还是把我的名字从原创里取消吧,在更新中有我就足矣。说实话,qzwqzw的功劳比我更大,他还从这个脚本中发现了CMD的一个秘密。
作者: xxx3212    时间: 2008-1-15 18:46

其实我也想编个 就是不知道算法 所以就放弃了
楼主确实牛
作者: xxx3212    时间: 2008-1-17 18:57

报个Bug如果日期是星期天 就会显示空白
这个批处理最大的遗憾就是不能显示月份

作者: foxJL    时间: 2008-1-17 19:11

原帖由 xxx3212 于 2008-1-17 18:57 发表
报个Bug如果日期是星期天 就会显示空白
这个批处理最大的遗憾就是不能显示月份

呵呵.多谢提示,BUG已修正,已经在顶楼更新.
作者: xxx3212    时间: 2008-1-18 09:17

在网上找了半天都没找到农历的算法 都说农历不好算 算出来也不精确 难道真的没算法了吗?
作者: 柴火垛    时间: 2008-2-3 14:51

刚来的,羡慕啊,学习中
作者: bat86    时间: 2008-3-21 17:58     标题: 收藏

值得研究一下, 呵呵
作者: pcfan    时间: 2008-4-2 17:19

LZ     牛人也
作者: chishingchan    时间: 2008-4-2 21:27

最强之作!顶几次也不嫌多!全部复制慢慢参考,找时间搞作xls格式的!
作者: 魔少爷    时间: 2008-4-3 00:13

能做我的老师么,,愿意的话加下我的QQ373210344
作者: 小竹    时间: 2008-4-3 13:00

什么都好,就是农历年的算法上有问题。戊子年和2008年不一样,春节前是丁亥,之后才是戊子!
作者: foxJL    时间: 2008-4-3 17:00

因为无法推算农历月份所以就不能准确的算出干支年,只能针对公历计算了.
作者: qiji880    时间: 2008-4-19 21:17

真是感谢啊
做的真不错 :)
谢谢
作者: xc007    时间: 2008-4-23 20:53

哇,这样也能做出来,高手啊
作者: jlinfeng    时间: 2008-5-10 23:05     标题: 哇,太牛了

哇,太牛了  

顶起!!!!!!!!!!!!!!!!!
作者: one1314    时间: 2008-7-28 17:24     标题: 哇!好厉害!

我是菜鸟一个! 今天大开眼界了! 我爱上批处理了!
作者: pzw1985    时间: 2008-7-31 18:28

不看真的不知道,用批处理能做出这样的作品!
汗颜!
暴强!
作者: 想学P处理    时间: 2008-8-13 20:27

一个子————太强啦
作者: chxrsq1987    时间: 2008-8-16 15:13

太强了,好羡慕,向你学习!
作者: jipinshangren    时间: 2008-8-17 18:06

高手,一直想找这样的程序。谢谢提供!辛苦了!
作者: herosign    时间: 2008-8-19 16:03

报个BUG,
农历不正确,例如今天阳历是2008-8-19,阴历是七月十九号,它却显示十八号。
还有它阴历没月份!
作者: hexiao361    时间: 2008-8-21 08:49

真厉害,不顶都不行,就是不知道怎么用,惭愧啊
作者: hytachi    时间: 2008-8-21 10:30

这里真的是牛人一堆,佩服,
好好的学习
作者: haolongo    时间: 2008-8-22 23:21     标题: 真牛呀。。。。。

真牛XXXXXXXXXXXXXXX
作者: 学者    时间: 2008-9-16 19:36

支持下,不过我也觉的不能显农历月份,有点不太完美
作者: yihong    时间: 2008-9-30 09:26

都是强人!!!!
作者: llasdf    时间: 2008-11-23 21:04

感动啊 技术无止境!!!!
作者: zhouyongjun    时间: 2008-11-24 10:14

楼主是强人,不得不佩服,学习中...
作者: ljl    时间: 2008-11-27 08:46

高手本人是菜鸟看不懂不过我以后一定会好好学习的
作者: skuny    时间: 2008-12-9 16:28

为什么不显示农历的月份?
作者: zss427607    时间: 2009-1-24 19:31

刚来的,羡慕啊,学习中  强悍呀
作者: ZJHJ    时间: 2009-1-24 20:18

1978-07-13是6月初8吗?????
作者: kissman    时间: 2009-1-27 14:53

刚学批处理。
一来就看到高手。
学习了。
作者: radem    时间: 2009-3-8 23:17

的确很不错,但农历算法有错,譬如1962-05-04是初一,但显示二十九
作者: liugang123200    时间: 2009-4-3 21:45

刚来的,羡慕啊,学习中
作者: HoeKey    时间: 2009-4-7 03:22

太牛了 不服不行 要好好学习
作者: wohe2008    时间: 2009-4-18 11:00

大哥,你太强了,制作的东西太有价值了,没遇到这么强的,今天我算是彻底开了眼界,本来想给分的,但我不知道哪里给分
作者: cqwyrm1    时间: 2009-4-19 22:53     标题: 任意公元纪年转干支纪年(包括公元前)

  1. :: code by cqwyrm 2009-4-19
  2. @echo off
  3. set tg=甲乙丙丁戊已庚辛壬癸
  4. set dz=子丑寅卯辰巳午未申酉戍亥
  5. :main
  6. cls
  7. set /p year= 请输入年份(公元前请输入负数):
  8. set input=%year%
  9. set /a ninput=%year%*(-1)
  10. if %year% LSS -57 set /a year=(%year%)%%60
  11. if %year% LSS 0 set /a year=%year%+61
  12. if %year%==0 (echo         SB,哪有公元零年啊!!!!) & goto next
  13. if %year% LSS 3  set /a year=%year%+60
  14. set /a temp1=((%year%-3)%%60)%%10
  15. set /a temp2=((%year%-3)%%60-%temp1%)/10
  16. set /a x=%temp1%-1
  17. set /a y=(%temp1%+12-%temp2%*2)%%12-1
  18. if %x%==-1 set /a x=%x%+10
  19. if %y%==-1 set /a y=%y%+12
  20. for /l %%i in (0,1,%x%) do (
  21.     call set char1=%%tg:~%%i,1%%
  22. )
  23. for /l %%i in (0,1,%y%) do (
  24.     call set char2=%%dz:~%%i,1%%
  25. )
  26. if %input% LSS 0 echo                 公元前%ninput%年 是 %char1%%char2%年
  27. if %input% GTR 0 echo                 公元%input%年 是 %char1%%char2%年
  28. :next
  29. echo.
  30. echo.
  31. echo                 请按任意键继续查询
  32. pause >nul
  33. goto main
复制代码

作者: li_dongyun    时间: 2009-4-20 09:28

这个算法肯定有问题,考虑了闰年、闰月了吗?我随便拿我的生日算了一下,就差一天:
在公历(格里历)纪年中,有闰日的年份叫闰年,一般年份365天,闰年为366天。由于地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年,公历把一年定为365天。所余下的时间约为四年累计一天,加在二月里,所以平常年份每年365天,二月为28天,闰年为366天,二月为29天。因此,每400年中有97个闰年,闰年在2月末增加一天,闰年366天。 闰年的计算方法:公元纪年的年数可以被四整除,即为闰年;被100整除而不能被400整除为平年;被100整除也可被400整除的为闰年。如2000年是闰年,而1900年不是。
    下面是一个计算公历闰年的例子:
     s = InputBox("请输入年份:")
     n = Val(s)
     If n Mod 400 = 0 Or (n Mod 4 = 0 And n Mod 100 <> 0) Then
     MsgBox s + "是闰年!"
     End If
中国旧历农历纪年中,有闰月的一年称为闰年。一般年份为12个月,354或355天,闰年则为13个月,383或384天。农历作为阴阳历的一种,每月的天数依照月亏而定,一年的时间以12个月为基准;为了合上地球围绕太阳运行周期即回归年,每隔2到4年,增加一个月,增加的这个月为闰月,因此农历的闰年为13个月。
    农历没有第十三月的称谓,闰月按照历法规则,排放在从二月到十月的过后重复同一个月,重复的这个月为闰月,如四月过后的闰月称为闰四月。
    农历闰年闰月的推算,3年一闰,5年二闰,19年七闰;农历基本上19年为一周期对应于公历同一时间。如公历的2001年5月27日、1982年5月27日和1963年5月27日这个日子,都是闰四月初五。
闰月加到哪个月,以农历历法规则推断,主要依照与农历的二十四节气相符合来确定;
农历的闰月天数与正常月份天数一样,为29或30天。
农历所谓“闰”的说法,只有闰年和闰月称谓,公历也有闰年的称谓。
公历1982年至2042年与农历闰年闰月对照表
    公历所在月份 闰月(初一日) 干支年
    1982年5月23日 闰四月小 壬戊年
    1984年11月23日 闰十月大 甲子年
    1987年7月26日 闰六月大 丁卯年
    1990年6月23日 闰五月大 庚午年
    1993年4月22日 闰三月大 癸酉年
    1995年9月25日 闰八月大 乙亥年
    1998年6月24日 闰五月小 戊寅年
    2001年5月23日 闰四月大 辛巳年
    2004年3月21日 闰二月大 甲申年
    2006年8月24日 闰七月大 丙戊年
    2009年6月23日 闰五月大 己丑年
    2012年5月21日 闰四月小 壬辰年
    2014年10月24日 闰九月小 甲午年
    2017年7月23日 闰六月大 丁酉年
    2020年5月23日 闰四月小 庚子年
    2023年3月22日 闰二月大 癸卯年
    2025年7月25日 闰六月大 己巳年
    2028年6月23日 闰五月大 戊申年
    2031年4月22日 闰三月大 辛亥年
    2033年8月25日 闰七月大 癸丑年
    2036年7月23日 闰六月小 丙辰年
    2039年6月22日 闰五月大 己未年
    2042年3月22日 闰二月大 壬戊年

有一个现成的例子,javascript农历日历,试了一下很准确,起码我的生日没算错
https://www.xfocus.net/bbs/index ... p;t=1479&p=3970
作者: foxJL    时间: 2009-4-30 23:05

回楼上的朋友,关于公历润年此脚本是可以计算的,并没有问题。
但通过公历来推算农历,至今都没有完美的方法,不能算出月份,日期有时也会出现一天左右的误差。你所说的javascript日历表不过是通过一堆16进制的数据来查询的,并不是推算。你可以输入100年的日期,那上面就没有农历显示了。
批处理也有人写过通过数据查询的日历,你可以参考一下:http://www.cn-dos.net/forum/view ... ght=%2B%E5%8E%86%2B
作者: aizzw    时间: 2009-5-8 17:22

的确不错
但是发现一个bug,就是如果年份是2010年以后的农历日期会比正确的农历日期慢一天。
作者: aizzw    时间: 2009-5-8 17:30     标题: 我美化了一下

  1. :: 月历查询工具
  2. :: 原创:foxjl  更新:namejm, qzwqzw,foxjl,aizzw
  3. :: 输入的日期格式为:年-月-日(-可以替换为:、/,可以混用)
  4. :: 在日历里面,☆=当天
  5. :: 支持多种格式的日期输入:
  6. :: ① 若只输入一个数,则认为是查询当年月份,自动截取后两位数字查询,☆标在1日上;
  7. :: ② 若输入两个数,则认为是查询年和月,☆标在1日上;
  8. :: ③ 输全的话,“ ☆”标在指定日期上
  9. :: 关于年份的转换:
  10. :: ① 若年份上输入的数字少于三位,则作如下转换:
  11. ::     50~99判定为19xx
  12. ::     0~49判定为20xx
  13. :: ② 若输入的年份数字超过两位,则截取后四位字符(不足部分在高位补0),
  14. ::    按 ① 的规则计算该年份的日期;
  15. :: 07-08-04 增加针对农历的生肖及干支年计算;修改错误日期循环提示的BUG.
  16. :: 08-01-13 增加推算农历日期的功能.
  17. @echo off
  18. color 2F
  19. mode con cols=40 lines=21
  20. setlocal enabledelayedexpansion
  21. set str=日一二三四五六七八九
  22. set sdate=%date%
  23. :Main
  24. cls&echo.
  25. :: 日期提取、格式化与校验
  26. for /f "tokens=1,2,3 delims=-/: " %%i in ("%sdate%") do (
  27.     (set sy=%%i) && (set sm=%%j) && (set sd=%%k)
  28. )
  29. if not defined sd set sd=1
  30. if not defined sm set sm=%sy%&set sy=%date:~0,4%
  31. (set sy=0000%sy%) && (set sm=00%sm%) && (set sd=00%sd%)
  32. (set sy=%sy:~-4%) && (set sm=%sm:~-2%) && (set sd=%sd:~-2%)
  33. set /a y=1%sy%-10000, m=1%sm%-100, d=1%sd%-100 2>nul
  34. if errorlevel 9167 goto Error
  35. if %y% lss 100 (
  36.     if %y% lss 50 (set /a y+=2000) else (set /a y+=1900)
  37.     set sy=!y!
  38. )
  39. if %m% lss 13 if %d% lss 32 goto Calc
  40. :Error
  41. echo. 你输入的日期有错误,按任意键返回.
  42. pause>nul
  43. cd.
  44. set sdate=%date%
  45. goto Main
  46. :Calc
  47. ::计算农历部分
  48. set/a Q=(y-1901)/4
  49. set/a R=y-1901-4*Q
  50. set n=0
  51. for %%i in (0,31,59,90,120,151,181,212,243,273,304,334) do (
  52. set /a n+=1
  53. if %m% equ !n! set z=%%i)
  54. set /a leap="^!(y%%4) & ^!(^!(y%%100)) | ^!(y%%400)"
  55. if %m% gtr 2 (if %leap% equ 0 (set /a z-=1) else (set /a z+=leap))
  56. set/a n=(140*Q+106*(R+1)+z*10+d*10)/295,H=(140*Q+106*(R+1)+z*10+d*10-295*n)/10
  57. if %h% equ 0 set h=29
  58. if %h% leq 10 (if %h% equ 10 (set h=初十) else (set h=初%h%)) else (set h=%h:~0,1%十%h:~-1%号)
  59. for /l %%i in (1,1,9) do (call set h=%%h:%%i=!str:~%%i,1!%%)
  60. set h=%h:0=%
  61. :: 计算生肖及干支年
  62. set sx=猴鸡狗猪鼠牛虎兔龙蛇马羊
  63. set tg=庚辛壬癸甲乙丙丁戊己
  64. set dz=申酉戌亥子丑寅卯辰巳午未
  65. set /a sxnum=%sy% %% 12
  66. set /a tgnum=%sy:~-1%
  67. title 万年历
  68. :: 计算每个月的天数
  69. set days=31
  70. for %%i in (4 6 9 11) do if %m% equ %%i set days=30
  71. :: 计算2月份的偏差
  72. set /a leap="^!(y%%4) & ^!(^!(y%%100)) | ^!(y%%400)"
  73. if %m% equ 2 set /a days=28+%leap%
  74. if %m% leq 2 (set /a y-=1& set /a m+=12)
  75. :: 计算指定日期的星期数
  76. set /a w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%%7
  77. echo.    %sy%年%sm%月  公历:%sm%-%sd%     星期!str:~%w%,1!
  78. :: 生成月历
  79. set /a wb=(w+35-d) %% 7, we=wb+days+1, day=1
  80. echo. ━━━━━━━━━━━━━━━━━━━
  81. echo.    日   一   二   三   四   五   六
  82. echo. ━━━━━━━━━━━━━━━━━━━
  83. set /p= <nul
  84. for /l %%i in (0,1,37) do (
  85.     set "temp=  "
  86.     if %%i GTR %wb% if %%i LSS %we% (
  87.         set temp= !day!
  88.         set temp=!temp:~-2!
  89.         if !d! EQU !day! set temp=☆
  90.         set /a day+=1
  91.     )
  92.     set /p=   !temp!<nul
  93.     set /a "wm=(%%i+1)%%7"
  94.     if !wm! equ 0 echo.&echo.&set /p= <nul
  95. )
  96. echo.
  97. echo  ━━━━━━━━━━━━━━━━━━━
  98. echo.   农历!tg:~%tgnum%,1!!dz:~%sxnum%,1!年  农历:%h%  生肖:!sx:~%sxnum%,1!
  99. echo  ━━━━━━━━━━━━━━━━━━━
  100. echo.  输入日期可查询当日星期并显示当月月历
  101. echo.
  102. set sdate=
  103. set /p sdate=  [回车]退出;格式如:2009-05-08:
  104. if defined sdate goto Main
复制代码

作者: aizzw    时间: 2009-5-8 17:34

程序图
[attach]1273[/attach]
作者: zxyu000    时间: 2009-6-3 11:14

真佩服你在做的批处理,学习。
作者: jing2049    时间: 2009-6-9 13:56

确实很不错,记得以前上学的时候想用c#编写,结果已失败告终。
作者: sampeck    时间: 2009-6-26 10:09

看了"月历查询工具"发现一个BUG,宽度应该改大一点,不然在输入日期时,会自动换行,并且很不美观.测试一下就知道效果不同了.

原文代码效果图:
[attach]1894[/attach]
宽度修改以后的代码效果图
[attach]1895[/attach]
宽度修改以后的代码:
  1. :: 月历查询工具 最初发表于CN-DOS
  2. :: 原创:foxjl  更新:namejm, qzwqzw,foxjl
  3. :: 宽度修改:SAMPECK  2009-06-26
  4. :: 计算农历日期部分思路及算法来自"趣味东"
  5. :: 输入的日期格式为:年-月-日(-可以替换为:、/,可以混用)
  6. :: 在日历里面,★=当天
  7. :: 支持多种格式的日期输入:
  8. :: ① 若只输入一个数,则认为是查询当年月份,自动截取后两位数字查询,★标在1日上;
  9. :: ② 若输入两个数,则认为是查询年和月,★标在1日上;
  10. :: ③ 输全的话,★标在指定日期上
  11. :: 关于年份的转换:
  12. :: ① 若年份上输入的数字少于三位,则作如下转换:
  13. ::     50~99判定为19xx
  14. ::     0~49判定为20xx
  15. :: ② 若输入的年份数字超过两位,则截取后四位字符(不足部分在高位补0),
  16. ::    按 ① 的规则计算该年份的日期;
  17. :: 07-08-04 增加针对农历的生肖及干支年计算;修改错误日期循环提示的BUG.
  18. :: 08-01-13 增加推算农历日期的功能.
  19. @echo off
  20. color 1f
  21. mode con cols=42 lines=20
  22. setlocal enabledelayedexpansion
  23. set str=日一二三四五六七八九
  24. set sdate=%date%
  25. :Main
  26. cls&echo.
  27. :: 日期提取、格式化与校验
  28. for /f "tokens=1,2,3 delims=-/: " %%i in ("%sdate%") do (
  29.     (set sy=%%i) && (set sm=%%j) && (set sd=%%k)
  30. )
  31. if not defined sd set sd=1
  32. if not defined sm set sm=%sy%&set sy=%date:~0,4%
  33. (set sy=0000%sy%) && (set sm=00%sm%) && (set sd=00%sd%)
  34. (set sy=%sy:~-4%) && (set sm=%sm:~-2%) && (set sd=%sd:~-2%)
  35. set /a y=1%sy%-10000, m=1%sm%-100, d=1%sd%-100 2>nul
  36. if errorlevel 9167 goto Error
  37. if %y% lss 100 (
  38.     if %y% lss 50 (set /a y+=2000) else (set /a y+=1900)
  39.     set sy=!y!
  40. )
  41. if %m% lss 13 if %d% lss 32 goto Calc
  42. :Error
  43. echo.错误的日期.
  44. pause>nul
  45. cd.
  46. set sdate=%date%
  47. goto Main
  48. :Calc
  49. ::计算农历部分
  50. set/a Q=(y-1901)/4
  51. set/a R=y-1901-4*Q
  52. set n=0
  53. for %%i in (0,31,59,90,120,151,181,212,243,273,304,334) do (
  54. set /a n+=1
  55. if %m% equ !n! set z=%%i)
  56. set /a leap="^!(y%%4) & ^!(^!(y%%100)) | ^!(y%%400)"
  57. if %m% gtr 2 (if %leap% equ 0 (set /a z-=1) else (set /a z+=leap))
  58. set/a n=(140*Q+106*(R+1)+z*10+d*10)/295,H=(140*Q+106*(R+1)+z*10+d*10-295*n)/10
  59. if %h% equ 0 set h=29
  60. if %h% leq 10 (if %h% equ 10 (set h=初十) else (set h=初%h%)) else (set h=%h:~0,1%十%h:~-1%号)
  61. for /l %%i in (1,1,9) do (call set h=%%h:%%i=!str:~%%i,1!%%)
  62. set h=%h:0=%
  63. :: 计算生肖及干支年
  64. set sx=猴鸡狗猪鼠牛虎兔龙蛇马羊
  65. set tg=庚辛壬癸甲乙丙丁戊己
  66. set dz=申酉戌亥子丑寅卯辰巳午未
  67. set /a sxnum=%sy% %% 12
  68. set /a tgnum=%sy:~-1%
  69. title 农历!tg:~%tgnum%,1!!dz:~%sxnum%,1!年 生肖:!sx:~%sxnum%,1! 农历:%h%
  70. :: 计算每个月的天数
  71. set days=31
  72. for %%i in (4 6 9 11) do if %m% equ %%i set days=30
  73. :: 计算2月份的偏差
  74. set /a leap="^!(y%%4) & ^!(^!(y%%100)) | ^!(y%%400)"
  75. if %m% equ 2 set /a days=28+%leap%
  76. if %m% leq 2 (set /a y-=1& set /a m+=12)
  77. :: 计算指定日期的星期数
  78. set /a w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%%7
  79. echo.  %sy%年%sm%月   日期:%sy%-%sm%-%sd%,星期!str:~%w%,1!
  80. echo.
  81. :: 生成月历
  82. set /a wb=(w+35-d) %% 7, we=wb+days+1, day=1
  83. echo.    日   一   二   三   四   五   六
  84. echo. ━━━━━━━━━━━━━━━━━━━
  85. set /p= <nul
  86. for /l %%i in (0,1,37) do (
  87.     set "temp=  "
  88.     if %%i GTR %wb% if %%i LSS %we% (
  89.         set temp= !day!
  90.         set temp=!temp:~-2!
  91.         if !d! EQU !day! set temp=★
  92.         set /a day+=1
  93.     )
  94.     set /p=   !temp!<nul
  95.     set /a "wm=(%%i+1)%%7"
  96.     if !wm! equ 0 echo.&echo.&set /p= <nul
  97. )
  98. echo.
  99. echo  ━━━━━━━━━━━━━━━━━━━
  100. echo.  输入日期可查询当日星期并显示当月月历
  101. echo.
  102. set sdate=
  103. set /p sdate=  格式如:2009-06-26,[回车]退出:
  104. if defined sdate goto Main
复制代码

作者: aizzw    时间: 2009-6-30 17:50     标题: 怎么发帖?

找了半天没找到可以发帖的地方

[ 本帖最后由 aizzw 于 2009-6-30 18:02 编辑 ]
作者: keen    时间: 2009-6-30 20:17     标题: 回复 58楼 的帖子

Q: 为何无法在某些版块发帖?
A: http://bbs.bathome.net/thread-2128-1-1.html
作者: zhaolin10086    时间: 2009-7-5 14:44

请楼主在核实一下,农历是不是计算有问题。我试了试1981年12月29日,计算农历为初三。实际情况是初四。
作者: eduuuu    时间: 2009-7-14 16:02

貌似有bug,可能计算错误,查一下19910218 那天的阴历为初五,可是我用一些网站上的,和nokia手机去查的那天是初四.
作者: jason588    时间: 2009-7-19 17:24

羡慕啊,学习中
楼主确实牛
作者: lujiaqu    时间: 2009-7-30 11:57     标题: 批处理万年历(包括农历日期)

我是新手,看了一下,确定不错,强烈支持.........
作者: gotmony    时间: 2009-8-2 23:43     标题: 回复 1楼 的帖子

厉害啊,我对批处理是越来越爱了,强大
作者: easy2003    时间: 2009-8-17 00:34

唯一的遗憾就是没有显示农历的月份。
作者: msl_2008    时间: 2009-8-26 16:51     标题: 回复 1楼 的帖子

楼主你真是太强了,不过我发现个BUG,就是在窗口上的农历显示错了,如附件,8.26是初七,而实际显示的是初六

5.23和5.24都显示为农历29,反正好几个月的阳历和农历都对不上
[attach]1893[/attach]
作者: dawang999    时间: 2009-8-29 21:22

好不错。下载看看

[ 本帖最后由 dawang999 于 2009-8-29 21:24 编辑 ]
作者: igmq    时间: 2009-9-30 22:35

的确很不错好好的学习下。
作者: athinko    时间: 2009-10-6 10:08

够厉害,寡人佩服了
作者: RuiIsRui    时间: 2009-10-24 20:06

还是楼主厉害啊~
作者: RuiIsRui    时间: 2009-10-24 20:13     标题: 批处理做双色球随机算号器

晕~怎么主题贴跑到这里来了

[ 本帖最后由 RuiIsRui 于 2009-10-24 20:19 编辑 ]
作者: lxzzr    时间: 2009-10-28 10:10

不错...
作者: netsky    时间: 2009-10-30 07:35

好东西,真是强大,向楼主好好学习
作者: wapclzj_2009    时间: 2009-11-6 22:11

强大啊,羡慕啊,学习中
作者: aabout    时间: 2009-11-12 07:02

两个 日期,农历的晚了一天。这是美中不足的。待修正。
比方说今天是农历九月二十六,可它显示的却是二十五。
作者: foxJL    时间: 2009-11-12 23:05

TO:LS
这确实是美中不足的,因为用算法算出来总有一天左右误差,直到目前都没有更加完美的算法。
作者: neorobin    时间: 2009-11-25 02:31     标题: 我试一下, 这究竟是回复还是用来发新贴的

我试一下, 这究竟是回复还是用来发新贴的
作者: opolokoi    时间: 2009-12-8 10:42

强烈支持,尤其整理出了其中的算法,太实用了。
作者: crartor    时间: 2010-3-3 00:50

我也来发表一个,我不记得从哪里(原作者没注名)弄来了一个用查询数据的方法计算农历的批处理。后来发现不少漏洞,我就修改了一下,并且加入了一些小功能,增强了查询的方便性,加入了星座,呵呵。希望大家看看还有什么不足之处,我们共同改正。


@echo off
SetLocal EnableDelayedExpansion
color 0a
mode con cols=40 lines=29
title 万年历     最后修改:2010.2.23
:c
set jt=今天是
set p1=%date:~0,4%
set p2=%date:~5,2%
set p3=%date:~8,2%
for /l %%a in (1,1,3) do for /f "delims=0 tokens=*" %%i in ("!p%%a!") do set p%%a=%%i
:y
if %p1% gtr 2100 goto v
if %p1% lss 1900 goto v
set/a input=p1-1899
call:ermd
set p=%nlstr:~4,1%
if %p% equ a set p=10
if %p% equ b set p=11
if %p% equ c set p=12
if %p% equ 0 goto lp
set/a ern=12-%p%
set erstr=!erstr:~0,%p%!%nlstr:~0,1%!!erstr:~-%ern%!
:lp
set rnl=%p%
set/a rynl=rnl+1
set 0=29
set 1=30
if defined erstr (
set ntest=%ntest% !%erstr:~0,1%!
set erstr=%erstr:~1%
goto lp
)
set np2=1
set np3=1
set nltt=0
:ppp
if %np2% geq %p2% goto nlppp
if %np2% lss %p2% (
set/a PN2="^!(p1%%4)&^!(^!(p1%%100))|^!(p1%%400)",PN2=28+PN2
for /f "tokens=%np2%" %%i in ("31 %pN2% 31 30 31 30 31 31 30 31 30 31") do (
set pt=%%i
set/a nltt=nltt+%%i
)
set/a np2+=1
goto ppp
)
:nlppp
set np1=%p1%
set np2=1
set np3=0
set/a tt=nltt+p3-%nlstr:~-2%
if %tt% gtr 0 goto nextg
set/a tt=%nlstr:~-2%-nltt-p3
set/a input=p1-1900
set rnl=0
call:ermd
set ntest=
set 0=29
set 1=30
:lpn
if defined erstr (
set ntest=%ntest% !%erstr:~0,1%!
set erstr=%erstr:~1%
goto lpn
)
set np3=0
set np2=1
set np1=%p1%
:nextn
set/a np2-=1
if %np2% equ 0 set/a np1-=1&&set np2=12
for /f "tokens=%np2%" %%i in ("%ntest%") do (
set/a np3=np3+%%i
set pt=%%i
)
if %np3% leq %tt% goto nextn
set/a np3=np3-tt
goto nloop
:nextg
for /f "tokens=%np2%" %%i in ("%ntest%") do (
set/a np3=tt+np3
set pt=%%i
)
if %np3% leq %pt% goto nloop
set/a np3=np3-pt
set tt=0
set/a np2+=1
goto nextg
:v
if %p3% leq 9 set p3=0%p3%
goto day
:ermd
set "test=04bd830 04ae049 0a57038 054d528 0d26046 0d95034 1655424 056a043 09ad032 055d221 04ae040 0a5b629 0a4d048 0d25036 1d25525 0b54044 0d6a034 0ada222 095b041 1497731 0497050 0a4b038 0b4b527 06a5046 06d4035 1ab5423 02b6043 0957032 052f222 0497040 0656629 0d4a047 0ea5036 06e9525 05ad044 02b6034 186e323 092e041 1c8d730 0c95049 0d4a038 1d8a626 0b55045 056a035 1a5b424 025d043 092d032 0d2b221 0a95040 0b55728 06ca047 0b55036 1535526 04da044 0a5b033 1457323 052b042 0a9a830 0e95048 06aa038 0aea627 0ab5045 04b6035 0aae424 0a57043 0526032 0f26320 0d95039 05b5729 056a047 096d036 04dd526 04ad045 0a4d033 0d4d422 0d25041 0d55830 0b54048 0b6a037 195a627 095b046 049b035 0a97424 0a4b043 0b27a32 06a5050 06d4039 0af4628 0ab6047 0957036 04af526 0497045 064b034 074a322 0ea5040 06b5830 055c049 0ab6037 096d527 092e046 0c96035 0d95423 0d4a042 0da5031 0755221 056a039 0abb728 025d048 092d037 0cab525 0a95044 0b4a033 0baa422 0ad5040 055d930 04ba049 0a5b038 1517627 052b046 0a93035 0795424 06aa042 0ad5031 05b5221 04b6040 0a6e628 0a4e047 0d26036 0ea6525 0d53043 05aa032 076a322 096d041 04bd730 04ad049 0a4d038 1d0b627 0d25045 0d52034 0dd4523 0b5a042 056d031 055b221 049b040 0a57729 0a4b047 0aa5036 1b25525 06d2044 0ada032 14b6322 0937041 049f831 0497049 064b038 168a627 0ea5045 06b2034 1a6c423 0aae042 092e032 0d2e320 0c96039 0d55728 0d4a047 0da5035 05d5525 056a044 0a6d033 055d422 052d041 0a9b830 0a95049 0b4a037 0b6a626 0ad5045 055a035 0aba423 0a5b042 052b032 0b27321 0693039 0733728 06aa047 0ad5036 14b5525 04b6044 0a57033 054e423 0d26040 0e96829 0d52048 0daa037 15aa626 056d045 04ae035 0a9d424 0a4d042 0d15031 0f25220 0d52039"
:next
if %input% gtr 31 (
for /f "tokens=31*" %%a in ("%test%") do set test=%%b
set/a input-=31
if %input% gtr 31 goto next
)
if not %input% equ 0 for /f "tokens=%input%" %%a in ("%test%") do set nlstr=%%a
set 0=0000
set 1=0001
set 2=0010
set 3=0011
set 4=0100
set 5=0101
set 6=0110
set 7=0111
set 8=1000
set 9=1001
set a=1010
set b=1011
set c=1100
set d=1101
set e=1110
set f=1111
set erstr=!%nlstr:~0,1%!!%nlstr:~1,1%!!%nlstr:~2,1%!!%nlstr:~3,1%!
set erstr=%erstr:~-12%
set h=%erstr%
goto:eof
:nloop
if %nlstr:~4,1% neq 0 set r=闰
set g=小
if %rnl% neq 0 (
if %np2% gtr %rnl% set/a np2-=1
if %nlstr:~0,1% equ 1 set g=大
if %np2% equ %rynl% set ry=闰&goto g
)
set g=小
set/a t=%np2%-1
set t=!h:~%t%,1!
if %t% equ 1 set g=大
:g
set str0=十一二三四五六七八九
if %np2% lss 10 (set nlp2=!str0:~%np2%,1!月) else set nlp2=十!str0:~%np2:~-1%,1!月&set nlp2=!nlp2:十十=十!
if %np3% lss 11 set nlp3=初!str0:~%np3:~-1%,1!
if %np3% gtr 10 if %np3% lss 20 set nlp3=十!str0:~%np3:~-1%,1!
if %np3% equ 20 set nlp3=二十
if %np3% gtr 20 if %np3% lss 30 set nlp3=廿!str0:~%np3:~-1%,1!
if %np3% equ 30 set nlp3=三十
if %np2% equ 1 set nlp2=正月
if %np2% equ 12 set nlp2=腊月
if not "%ry%" == "" set nlp2=%ry%%nlp2%
if %p3% leq 9 set p3=0%p3%
if %np3% leq 9 set np3=0%np3%
for /f "tokens=1-3*" %%i in ('more/e +371 %0') do (
if "%%i"=="%p2%%p3%" set nu=%%j
if "%%k"=="%np2%%np3%" set nnu=%%l
)
if "%p2%%p3%"=="701" set/a o=%p1%-1997&if !o! gtr 0 set nu=香港回归!o!周年纪念日_%nu%
if "%p2%%p3%"=="1220" set/a o=%p1%-1999&if !o! gtr 0 set nu=澳门回归!o!周年纪念日_%nu%
if "%np2%%np3%"=="1229" if "%g%"=="小" set nnu=除夕
set/a num1=np1%%12
set/a num2=%np1:~-1%
set sx=猴鸡狗猪鼠牛虎兔龙蛇马羊
set tg=庚辛壬癸甲乙丙丁戊己
set dz=申酉戌亥子丑寅卯辰巳午未
:day
set u=if %p2%%p3% geq
set v= if %p2%%p3% leq
set y= set x=
set i=:优点=
set j=;缺点=
set k=;宜=
%u%319%v%324%y%双鱼牧羊座%i%率直,热情,直觉强烈%j%易被误会,缺乏耐性,不切实际%k%蟹狮,蝎三,鱼三
%u%325%v%402%y%牧羊座一%i%坦率,不做作,充满活力%j%太天真,越界限,太理想主义%k%鱼羊,蝎射,狮二
%u%403%v%410%y%牧羊座二%i%成功导向,充满生气,精力充沛%j%冷淡,易怒,极端%k%射一,射三,子二
%u%411%v%418%y%牧羊座三%i%喜欢保护别人,大方,勇敢%j%不切实际,过度自我牺牲%k%狮一,蝎射,射三
%u%419%v%424%y%牧羊金牛座%i%稳重可靠,有权势,慷慨大方%j%迟纯,唯利是图,懒惰%k%女二,女秤,魔三
%u%425%v%502%y%金牛座一%i%勤劳不懈,不屈不挠,重视物质%j%顽固,骄矜,夸大不实%k%魔瓶,魔一,魔三
%u%503%v%510%y%金牛座二%i%诚实公正,富进取心,具吸引力%j%吹毛求疵,要求严格,不知通融%k%牛二,女二,魔一
%u%511%v%518%y%金牛座三%i%爱玩,具冒险精神,想像力丰富%j%偏执,桀傲不驯,经不起打击%k%牛一,女二,魔三
%u%519%v%524%y%金牛双子座%i%精力旺盛,交游广阔,才华横溢%j%多嘴,自大狂,不稳重%k%秤二,瓶二,女一
%u%525%v%602%y%双子座一%i%机智聪敏,魅力非凡,手脚灵巧%j%专横,有操控欲,爱抱怨%k%秤二,子蟹,秤一
%u%603%v%610%y%双子座二%i%健谈,竞争力强,富创新力%j%不善沟通,缺乏组织能力,肤浅%k%女秤,秤蝎,魔瓶
%u%611%v%618%y%双子座三%i%喜好探索,富冒险精神,精于理财%j%情绪不定,没耐性,易幻想破灭%k%女秤,秤蝎,魔瓶
%u%619%v%624%y%双子巨蟹座%i%富有魅力,客观公正,深情专一%j%孤僻,自私,要求严苛%k%秤三,蝎一,鱼一
%u%625%v%702%y%巨蟹座一%i%理财高手,敏感,专业技术精湛%j%企图心强,充满恐惧,需求多%k%鱼二,鱼三,蝎一
%u%703%v%710%y%巨蟹座二%i%富想像力,风趣,敏感体贴%j%自我毁灭的性格,执迷不悟,害羞%k%蝎二,鱼二,瓶鱼
%u%711%v%718%y%巨蟹座三%i%进取,说服力强,观察敏锐%j%表现极端,控制欲强,缺乏安全感%k%蝎一,蟹二,魔二
%u%719%v%725%y%巨蟹狮子座%i%富道德勇气,有趣,大胆无惧%j%易狂躁忧郁,情绪不稳定,易沉迷%k%鱼羊,蝎二,鱼二
%u%726%v%802%y%狮子座一%i%爱好真理,忠实,热情洋溢%j%经不起挫折,要求严苛,自私自利%k%羊三,射一,射三
%u%803%v%810%y%狮子座二%i%忠诚专一,值得信赖,崇尚自由%j%自虐倾向,忧郁消沉,内疚不安%k%羊一,羊牛,射一
%u%811%v%818%y%狮子座三%i%具大将之风,英勇干练,富创造力%j%独裁武断,自私自利,感觉迟纯%k%射一,射魔,蟹一
%u%819%v%825%y%狮子处女座%i%自给自足,观察力强,才华洋溢%j%过于自恋,深沉内敛,无法与人分享%k%牛一,射二,射一
%u%826%v%902%y%处女座一%i%组织能力强,可依赖,喜爱服务他人%j%严谨,情绪化,自我毁灭倾向%k%魔二,魔瓶,牛一
%u%903%v%910%y%处女座二%i%品味高尚,实际理智,深思熟虑%j%防御心重,反应过度,孤芳自赏%k%牛二,牛三,魔一
%u%911%v%918%y%处女座三%i%沉着冷静,很能干,喜欢保护弱小%j%好批判,有点无情,多愁善感%k%女二,魔三,牛三
%u%919%v%924%y%处女天秤座%i%美感,感官,和谐%j%势利,放纵耽溺,不稳定%k%子三,子二,瓶三
%u%925%v%1002%y%天秤座一%i%有吸引力,严厉,冷静%j%犹豫不决,刻薄,压抑%k%女秤,子一,瓶三
%u%1003%v%1010%y%天秤座二%i%与时俱进,公正,有洞察力%j%自我满足,严厉,自欺欺人%k%子一,瓶二,瓶鱼
%u%1011%v%1018%y%天秤座三%i%社会化,野心勃勃,博学%j%粗率,归罪于人,太过自信%k%子蟹,瓶一,瓶三
%u%1019%v%1025%y%天秤天蝎座%i%偏重感官,具有魅力,艺术性强%j%吹毛求疵,容易上瘾,严厉%k%子一,魔瓶,蟹二
%u%1026%v%1102%y%天蝎座一%i%真实,敏锐,专心致志%j%容易伤人,严格,自我毁灭%k%蟹一,蟹三,鱼二
%u%1103%v%1111%y%天蝎座二%i%认真,诚实,性感%j%担心,不愿面对沮丧%k%鱼三,蟹狮,鱼二
%u%1112%v%1118%y%天蝎座三%i%合群,迷人,聪明机智%j%防卫心重,自满,喜欢控制人%k%子蟹,蟹二,瓶鱼
%u%1119%v%1124%y%天蝎射手座%i%陶醉,忠诚,有胆量%j%独裁,嘲讽,狂野%k%羊一,蟹二,鱼二
%u%1125%v%1202%y%射手座一%i%值得尊敬,直觉强烈,负责任%j%过度竞争,冲动,情绪化%k%蟹狮,狮一,羊二
%u%1203%v%1210%y%射手座二%i%独特,热情,有天份%j%怪异,不负责任,不被他人接受%k%狮女,狮二,鱼二
%u%1211%v%1218%y%射手座三%i%慷慨,自信,有抱负%j%缺乏自知之明,缺乏安全感,挑剔%k%羊二,羊三,狮一
%u%1219%v%1225%y%射手魔羯座%i%具先知能力,富神秘感,热情洋溢%j%易有挫折感,讨厌交际,专制%k%鱼羊,狮三,蝎射
%u%1226%v%1231%y%魔羯座一%i%能干,努力,关心别人%j%武断,压抑,专横%k%牛二,女二,牛一
%u%101%v%102%y%魔羯座一%i%能干,努力,关心别人%j%武断,压抑,专横%k%牛二,女二,牛一
%u%103%v%109%y%魔羯座二%i%精力充沛,足智多谋,喜欢思考%j%单纯,防卫心强,工作狂%k%女一,魔瓶,射魔
%u%110%v%116%y%魔羯座三%i%专业,不畏艰难,专心一意%j%粗枝大叶,特立独行,自我牺牲%k%羊牛,女三,牛三
%u%117%v%122%y%魔羯水瓶座%i%活泼,使人愉快,爽朗%j%生活杂乱,难以捉摸,暴躁%k%牛一,子三,牛子
%u%123%v%130%y%水瓶座一%i%早熟,与众不同,自学力强%j%行事鲁莽,心不在焉,压力过大%k%秤三,羊牛,子蟹
%u%131%v%207%y%水瓶座二%i%专业,广受崇拜,气质高尚%j%不成熟,苦恼,孤僻%k%子蟹,秤二,秤蝎
%u%208%v%215%y%水瓶座三%i%活泼,有创意,感情丰富%j%容易生气,易受伤害,需要受重视%k%女秤,子二,秤一
%u%216%v%222%y%水瓶双鱼座%i%积极进取,细心,充满爱心%j%缺乏安全感,悲观,孤独%k%蟹一,秤二,蟹狮
作者: crartor    时间: 2010-3-3 00:52

%u%223%v%302%y%双鱼座一%i%重视心灵需求,重感官,情感表达直接%j%情绪化,没有责任感,性格具毁灭性%k%秤蝎,蟹一,瓶鱼
%u%303%v%310%y%双鱼座二%i%感情丰富,与人亲密,姿态优雅%j%喜欢隐居,对世界失望,易苦恼%k%蟹二,蝎一,蟹狮
%u%311%v%318%y%双鱼座三%i%思想深刻,热心助人,创造奇迹%j%显得无能,定不下来,易依赖他人%k%蝎二,蟹一,蝎一
if %p3% leq 9 set p3=%p3:0=%
set y=%p1%
set m=%p2%
set/a PN2="^!(p1%%4)&^!(^!(p1%%100))|^!(p1%%400)",PN2=28+PN2
if %PN2% equ 29 set z=闰
for /f "tokens=%p2%" %%i in ("31 %pN2% 31 30 31 30 31 31 30 31 30 31") do set pt=%%i
if %m% leq 2 (set/a y-=1,m+=12)
set/a w=(p3+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%%7
set/a w1=(1+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%%7
set xq=日一二三四五六
set/a w2=w1+pt, day=1
set u=if %p1% gtr 1
set v= if %p1% lss 1
set k= set mn=
set y= set/a mn=p1-1
%u%949%y%949
%u%874%v%909%y%874
%u%908%v%912%y%908
%u%911%v%950%y%911
%u%949%k%建国%mn%周年
%u%874%v%909%k%光绪%mn%年
%u%908%v%912%k%宣统%mn%年
%u%911%v%950%k%民国%mn%年
set u=if %p2% equ
set v= if %w% equ
set t= if %p3% geq
set y= if %p3% leq
set i= set nu=
%u%1%v%0%y%7%i%黑人日_%nu%
%u%1%v%0%t%25%i%世界麻风日_%nu%
%u%5%v%0%t%8%y%14%i%国际母亲节_%nu%
%u%5%v%0%t%15%y%21%i%全国助残日_%nu%
%u%6%v%0%t%15%y%21%i%国际父亲节_%nu%
%u%9%v%2%t%15%y%21%i%国际和平日_%nu%
%u%9%v%0%t%24%i%国际海事日_%nu%
%u%10%v%1%t%1%y%7%i%国际住房日_%nu%
%u%10%v%3%t%1%y%7%i%国际减轻自然灾害日(减灾日)_%nu%
%u%11%v%4%t%22%y%28%i%西方感恩节_%nu%
set s=农历:%np1%^!tg:~%num2%,1^!^!dz:~%num1%,1^!^!sx:~%num1%,1^!%r%年 %nlp2%%g% %nlp3% %nnu%
if %p1% gtr 2100 call:r
if %p1% lss 1900 call:r
cls
echo\
echo\ %s%
echo\  
echo\ %jt%:%p1%%z%年%p2%月%p3%日 星期!xq:~%w%,1!
echo\
echo\ %mn% %nu%
echo\
echo\    日   一   二   三   四   五   六
echo  ━━━━━━━━━━━━━━━━━━━
set/p= <nul
for /l %%i in (0,1,37) do (
set "temp=  "
if %%i GEQ %w1% if %%i LSS %w2% (
set temp= !day!
set temp=!temp:~-2!
if !p3! EQU !day! set temp=★
set/a day+=1
)
set/p=   !temp!<nul
set/a "wm=(%%i+1)%%7"
if !wm! equ 0 echo\&echo\&set/p= <nul
)
echo\
echo  ━━━━━━━━━━━━━━━━━━━
echo\ %x%
echo\
for %%a in (nu mn rnl nlp2 nlp3 np1 test ntest tt pt nnu r ry erstr z) do set %%a=
set j=goto p4
:p1
set/p l=查询:输入4位数年份/去年q/明年w/上个月a/下个月s/昨天z/今天c/明天x/留空d:
if "%l%"=="" goto p2
if /i "%l%"=="d" goto p2
if /i "%l%"=="x" goto x
if /i "%l%"=="c" goto c
if /i "%l%"=="q" goto q
if /i "%l%"=="w" goto w
if /i "%l%"=="a" goto a
if /i "%l%"=="s" goto s
if /i "%l%"=="z" goto z
set l=%l:~0,4%
echo %l%|findstr "\<[1-9][0-9][0-9][0-9]\>" >nul||echo 只能是 1000-9999&&set l=&&goto p1
set p1=%l%
:p2
set e=
set/p e= 输入月份(不变可留空)[回车]:
if "%e%"=="" goto p3
set e=%e:~0,2%
echo %e%|findstr "^[0-9]*$">nul||echo 输入错误&&goto p2
if %e% neq 0 if %e% neq 10 if %e% lss 13 set e=%e:0=%
if %e% leq 12 if %e% geq 1 set p2=%e%&goto p3
echo 只能是 1-12
goto p2
:p3
set e=
set/p e= 输入日期(不变可留空)[回车]:
if "%e%"=="" goto m
set e=%e:~0,2%
echo %e%|findstr "^[0-9]*$">nul||echo 输入错误&&goto p3
if %e% neq 0 if %e% neq 10 if %e% neq 20 if %e% neq 30 if %e% lss 32 set e=%e:0=%
call:d
if %e% leq %d% if %e% gtr 0 set p3=%e%&%j%
echo 本月只有%d%日
goto p3
:p4
set jt=您查询
goto y
:r
set s=(对不起!仅有1900-2100年的农历数据)
set nu=
goto:eof
:d
if %p2% equ 2 (set/a d="^!(p1%%4)&^!(^!(p1%%100))|^!(p1%%400)",d+=28) else set/a d="^!(^!(p2-4))&^!(^!(p2-6))&^!(^!(p2-9))&^!(^!(p2-11))",d+=30
goto:eof
:f
echo 已超出范围!
goto p1
:m
call:d
if %p3% gtr %d% set p3=%d%
%j%
:x
call:d
if %p3% neq %d% set/a p3+=1&%j%
set p3=1
if %p2% neq 12 set/a p2+=1&%j%
set p2=1
if %p1% equ 9999 set p2=12&set p3=30&goto f
set/a p1+=1
%j%
:q
if %p1% equ 1000 goto f
if %p2% equ 2 if %p3% equ 29 set p3=28
set/a p1-=1
%j%
:w
if %p1% equ 9999 goto f
if %p2% equ 2 if %p3% equ 29 set p3=28
set/a p1+=1
%j%
:a
if %p2% equ 1 if %p1% equ 1000 (goto f) else set p2=12&set/a p1-=1&%j%
set/a p2-=1
goto m
:s
if %p2% equ 12 if %p1% equ 9999 (goto f) else set p2=1&set/a p1+=1&%j%
set/a p2+=1
goto m
:z
if %p3% neq 1 set/a p3-=1&%j%
if %p2% neq 1 set/a p2-=1&call:d&set p3=!d!&%j%
if %p1% equ 1000 goto f
set p2=12
set p3=31
set/a p1-=1
%j%
101 新年元旦 101 春节
105 小寒前后 115 元宵节
120 大寒前后 202 龙抬头节
202 世界湿地日 323 天上圣母诞辰
204 立春前后_世界抗癌日 408 释迦牟尼诞辰
207 国际声援南非日 505 端午节
210 国际气象节 707 七夕情人节
212 国际足球比赛日 715 中元(鬼)节
214 西方情人节 815 中秋节
219 雨水前后 909 重阳节
301 国际海豹日 918 观音诞辰
303 全国爱耳日 1208 腊八节
305 中国青年志愿者服务日 1223 灶君节
306 惊蛰前后 1224 小年
308 国际妇女节 1230 除夕
312 中国植树节_孙中山逝世纪念日_复活节
314 国际警察日
315 国际消费者权益日_世界老年痴呆日
317 中国国医节_国际航海日
321 春分前后_世界森林日_国际消除种族歧视日_世界儿歌日_世界睡眠日
322 世界水日
323 世界气象日
324 世界防治结核病日
325 全国中小学生安全教育日
330 巴勒斯坦国土日
401 愚人节_爱国卫生运动月_税收宣传月
405 清明前后
407 世界卫生日
411 世界帕金森病日
420 谷雨前后
422 世界地球日
423 世界图书和版权日
424 亚非新闻工作者日
426 世界知识产权日
501 国际劳动节
503 世界哮喘日
504 中国五四青年节
505 碘缺乏病防治日
506 立夏前后
508 世界红十字日
512 国际护士节
515 国际家庭日
517 世界电信日
518 国际博物馆日
520 全国学生营养日
521 小满前后
522 国际生物多样性日
531 世界无烟日
601 国际儿童节_国际牛奶日
605 世界环境日
606 芒种前后_全国爱眼日
614 世界无偿献血日
617 世界防治荒漠化和干旱日
621 夏至前后
623 国际奥林匹克日
624 世界卒中日
625 全国土地日
626 国际禁毒日
629 全国科普行动日
701 中国共产党建党日_世界建筑日
702 国际体育记者日
707 小暑前后_中国人民抗日战争纪念日
711 世界人口日_中国航海日
723 大暑前后
730 非洲妇女日
801 中国人民解放军建军节
808 立秋前后_中国男子(爸爸)节
815 日本正式宣布无条件投降日
823 处暑前后
903 抗日战争胜利纪念日
904 世界法律日
908 白露前后_国际扫盲日_国际新闻工作者日_中国酒吧节
909 毛泽东逝世纪念日
910 中国教师节_世界预防自杀日
912 中国预防出生缺陷日
914 世界清洁地球日
916 国际臭氧层保护日_中国脑健康日
917 1894甲午战争
918 国耻日_九·一八事变纪念日
920 国际爱牙日
922 世界无车日
923 秋分前后
927 世界旅游日
928 孔子诞辰
1001 国庆节_世界音乐日_国际老人节
1002 国际和平与民主自由斗争日
1004 世界动物日
1008 寒露前后_全国高血压日_世界视觉日
1009 世界邮政(万国邮联)日
1010 辛亥革命纪念日_世界精神卫生日
1011 世界镇痛日
1013 国际教师节_世界保健日
1014 世界标准日
1015 国际盲人(白手杖)节
1016 世界粮食日
1017 世界消除贫困日
1020 世界骨质疏松日
1022 世界传统医药日_国际口吃日
1023 霜降前后
1024 联合国日_世界发展信息日
1028 全国男性健康日
1031 世界勤俭日(万圣节)
1107 十月社会主义革命纪念日
1108 立冬前后_中国记者日
1109 全国消防安全宣传教育日
1110 世界青年节
1111 民间光棍节_国际科学与和平周
1112 孙中山诞辰纪念日
1114 世界糖尿病日
1117 国际大学生节_世界学生节
1119 世界厕所日
1121 世界问候日_世界电视日
1122 小雪前后
1125 国际消除对妇女暴力日
1129 国际声援巴勒斯坦人民国际日
1201 世界艾滋病日
1203 世界残疾人日
1204 全国法制宣传日
1205 国际经济和社会发展志愿人员日
1207 大雪前后_国际民航日
1208 国际儿童电视日
1209 世界足球日
1210 世界人权日
1212 西安事变纪念日
1213 1937南京大屠杀纪念日
1221 国际篮球日
1222 冬至前后
1224 平安夜
1225 圣诞节
1226 毛泽东诞辰纪念日

[attach]2259[/attach]
作者: UnderDead    时间: 2010-3-18 15:53

强大   增强了学DOS的信心
作者: crartor    时间: 2010-4-11 19:55

这不算算法吧,是查询数据库的方法,也就是有限的记录:1900年-2100年而已!
作者: junwalo    时间: 2010-7-7 11:20

刚学批处理。
一来就看到高手。
学习了。
作者: long_feihong    时间: 2010-7-20 17:06     标题: 很强,很大

真的不错,很强很大。。
作者: yadngah1984    时间: 2010-9-10 20:39

太强了,学习中!!!
作者: 白手真三    时间: 2011-1-1 23:26     标题: 标题

太厉害了,高手啊
作者: caiyaoyao    时间: 2011-4-3 10:37

顶礼膜拜....
作者: a382039369    时间: 2011-6-1 22:10

农历显示  "农历辛卯年 生肖:兔 农历:二十九号"   本来应该是 卅号

  2011年06月   日期:2011-06-01,星期三

    日   一   二   三   四   五   六
━━━━━━━━━━━━━━━━━━━
                   ★    2    3    4

     5    6    7    8    9   10   11

    12   13   14   15   16   17   18

    19   20   21   22   23   24   25

    26   27   28   29   30


━━━━━━━━━━━━━━━━━━━
  输入日期可查询当日星期并显示当月月历

  格式如:2007-02-03,[回车]退出:
作者: vspeitao    时间: 2011-6-6 17:43

1990-2-28显示初四,1990-3-1也显示初四
作者: vspeitao    时间: 2011-6-6 17:44

我按1990-2-29 显示初五,但是那个月没有29~~~
作者: y8160000    时间: 2011-6-9 20:34

能不能告诉我们这些入门者,这些算法是如何来的
作者: hanyeguxing    时间: 2011-8-8 22:25

公历计算,有一个很郁闷的问题:
“西方历法的第一次改革是罗马朱利乌斯·凯撒大帝引进的。他采用的四年一闰的闰年方式。由于一个太阳年不刚好是365.25天,而是   365.242199…天。到16世纪,每年11分14秒的误差已经累积成10天,也就是历法上多了10天。于是教皇格利戈里八世进行了一次校正。他在1582年2月24日以教皇训令颁布,将1582年10月5日至14日抹掉,并且对原来的闰年方法进行了校正。经过校正的历法叫格利戈里历法,也就是我们现在用的公历。1752年,英国人决定采用格利戈里历法,不过从1582年到那时,历法又多出了1天,所以英国议会在1752年作出决定,抹掉11天——1752年9月3日至13日。”
作者: Fantasys    时间: 2011-10-12 11:42

还是有些问题啊。比如说今天是2011年10月12日,农历应该是9月16日,但上面显示的是15日。
还有,如果能判断电脑上日期的格式就更好了。比如我电脑上是美国日期格式,即月日年那种,就会出错。
作者: Batcher    时间: 2011-10-12 13:04

回复 96# Fantasys


你可以自己去定制化一个,参考:

批处理标准化获取当前系统日期
http://bbs.bathome.net/thread-3328-1-1.html
作者: yyykkkyyyy    时间: 2011-11-6 19:53

我级别低能发上吗
因为我曾应别人要求用批处理应网友所求为算命系统写过一部分,,之后感觉"规则"复杂,且与他交流也困难没再继续
[attach]4614[/attach]
作者: yyykkkyyyy    时间: 2011-11-6 21:19

看到此贴标题我很高兴,原以为很难会有人肯用批处理干这事,先看看是如何算法再慢慢向大家学习。我介绍一下我这个的大致“算法”,至于代码,相信各位都比我强。
我当初也是企图找找出阴历纯计算方法,结果放弃了,最终从网上整理出从1900-2030年每年阴历各月大小的数据表,还要找出若干年24节气时间,尤其是立春时间要求很精确,弄一个24节气的模拟计算式
农历的年号并不是大年初一开始新的一年,而是以立春为界,之前我一直以为是正月初一
24节气间隔天数是不等的,农历的闰月是以该月里是否无节仅有气(比如清明是节,而谷雨是气)来确定的
我这种的精度经与网上万年历校验,(我猜那也不会是用的计算式,比我这更偏于查数据表)误差一般在几分钟到几十分钟(误差大了那生辰八字就变了哦),但显然可能有某些时点的偏差会更大些,不可能一一验到。据说现代用天文科学观测计算的结果证明,古代年历也有误差一天以上的,但仍维持历史不变以免造成混乱,即便这样,我真感慨古人是如何定出这农历的,“夜观天象、掐指一算”有如此之高精度。
作者: hnfeng    时间: 2012-4-28 13:38

本帖最后由 hnfeng 于 2012-4-28 13:43 编辑

在我的电脑上(Win7中文版)显示有问题,日期全挤在一起,农历日期也显示不了:
[attach]5207[/attach]
作者: gawk    时间: 2012-4-28 17:46

回复 99# yyykkkyyyy


    阴历本来就不是计算出来的,所以找不到算法
作者: 111    时间: 2012-9-1 20:00

如果能加上节日提示就好了,但我是菜鸟,看不懂,只做了个简单的
  1. @echo off
  2. mode con cols=50 lines=5
  3. title 节日提示器
  4. :ks
  5. cls
  6. set yy=%date:~0,4%
  7. set mm=%date:~5,2%
  8. set nn=%date:~8,2%
  9. set zg=%yy%年%mm%月%nn%日
  10. set hh=%time:~0,2%点%time:~3,2%分%time:~6,2%秒
  11. echo.
  12. echo     现在时间:%zg% %hh%
  13. if /i '%zg%'=='%yy%年01月01日' echo 今天是元旦&ping /n 2 127.1>nul&goto ks
  14. if /i '%zg%'=='%yy%年01月06日' echo 今天是中国13亿人口日&ping /n 2 127.1>nul&goto ks
  15. if /i '%zg%'=='%yy%年01月10日' echo 今天是中国110宣传日&ping /n 2 127.1>nul&goto ks
  16. if /i '%zg%'=='%yy%年02月02日' echo 今天是世界湿地日&ping /n 2 127.1>nul&goto ks
  17. if /i '%zg%'=='%yy%年02月04日' echo 今天是世界抗癌症日&ping /n 2 127.1>nul&goto ks
  18. if /i '%zg%'=='%yy%年02月10日' echo 今天是世界气象日&ping /n 2 127.1>nul&goto ks
  19. if /i '%zg%'=='%yy%年02月14日' echo 今天是情人节&ping /n 2 127.1>nul&goto ks
  20. if /i '%zg%'=='%yy%年02月21日' echo 今天是国际母语日&ping /n 2 127.1>nul&goto ks
  21. if /i '%zg%'=='%yy%年02月07日' echo 今天是国际声援南非日&ping /n 2 127.1>nul&goto ks
  22. if /i '%zg%'=='%yy%年02月29日' echo 今天是国际罕见病日&ping /n 2 127.1>nul&goto ks
  23. ::我太懒了,写到这就不想写了,请大家帮帮忙
  24. ping /n 2 127.1>nul
  25. goto ks
  26. ::资料
  27. ::世 界 节 日 大 全
  28. :: 1月 January
  29. :: 新年元旦[01/01] 黑人节[1月第一个星期天] 中国13亿人口日[01/06]
  30. ::  日本**节[1月第二个星期一] 中国110宣传日[01/10] 国际麻风节[1月最后一个星期日]
  31. :: 2月 February
  32. :: 世界湿地日[02/02] 世界抗癌症日[02/4] 世界气象日[02/10]
  33. ::  情人节[02/14] 国际母语日[02/21] 国际声援南非日[02/7]
  34. ::  国际罕见病日[02/29]   
  35. :: 3月 March
  36. :: 全国爱耳日[03/03] 妇女节[03/08] 植树节[03/12]
  37. ::  国际消费日[03/15] *世界森林日 [03.21] 世界水日[03/22]
  38. ::  *世界气象日 [03.23] *世界防治结核病日 [03.24]   
  39. :: 4月 April
  40. :: 愚人节[04/01] *清明节 [04.05] *世界卫生日 [04.07]
  41. ::   世界地球日[04/22]   
  42. :: 5月 May
  43. :: 国际劳动节[05/01] 中国青年节[05/04] *全国碘缺乏病日 [05.05]
  44. ::  世界红十字日[05/08] 国际护士节[05/12] 国际家庭日[05/15]
  45. ::  世界电信日[05/17] 国际博物馆日[05/18] 全国助残日[每年五月第三个星期日]
  46. ::  中国汶川地震哀挨哀悼日[05/19]  全国学生营养日[05/20] 国际生物多样性日[05/22]
  47. ::  国际牛奶日[每年5月的第三个星期二] 世界无烟日[05/31] 母亲节[5月第二个星期日]
  48. :: 6月 June
  49. :: 国际儿童节 [06.01] 世界环境日[06/05] *全国爱眼日 [06.06]
  50. ::  *端午节 [06.15] 父亲节[6月第三个星期日] *防治荒漠化和干旱日 [06.17]
  51. ::  国际奥林匹克日[06/23] *全国土地日 [06.25] *国际反毒品日 [06.26]
  52. :: 7月 July
  53. :: 香港回归日[07/01] 建党节[07/01] *抗日战争纪念日 [07.07]
  54. ::  世界过敏性疾病日[07/8] 世界人口日[07/11]   
  55. :: 8月 August
  56. :: 八一建军节[08/01] 七夕情人节 [农历七月初七]   
  57. :: 9月 September
  58. :: *劳动节 [09.01] 国际扫盲日[09/08] 教师节[09/10]
  59. ::世界预防自杀日[09/10]
  60. ::  国际臭氧层保护日[09/16] 国际和平日[09/17] *国际爱牙日 [09.20]
  61. ::  中秋节 [农历八月十五] 国际聋人节[9月第四个星期日] *世界旅游日 [09.27]
  62. ::  *重阳节 [农历九月初九]     
  63. :: 10月 October
  64. :: 国庆节[10/01] *国际音乐节 [10.01] *国际减轻自然灾害日 [10.02]
  65. ::  世界动物日[10/04] 国际住房日[10/07] *全国高血压日 [10.08]
  66. ::  世界视觉日[10/08] 世界邮政日[10/09] *世界精神卫生日 [10.10]
  67. ::  国际盲人节[10/15] 世界粮食节[10/16] *世界消除贫困日 [10.17]
  68. ::  中国(揭阳)国际玉器节[10/21] 世界传统医药日[10/22] 联合国日[10/24]
  69. ::  人类天花绝迹日[10/25] 足球诞生日[10/26] 万圣节[10/31]
  70. :: 11月 November
  71. :: 中国记者日[11/08] *消防宣传日 [11.09] *世界糖尿病日 [11.14]
  72. ::  *国际大学生节 [11.17] 感恩节[11月第四个星期四]   
  73. :: 12月 December
  74. :: 世界艾滋病日[12/1] *世界残疾人日 [12.03] *世界足球日 [12.09]
  75. ::  澳门回归纪念日[12/20] 国际篮球日[12/21] *冬至节 [农历十二月二十二日]
  76. ::  平安夜[12/24] 圣诞节 [12.25] 世界强化免疫日[12/25]
  77. ::  **诞辰[12/26]
复制代码

作者: katkat    时间: 2013-3-17 11:55

挺厉害的,继续学习。
作者: 47022284    时间: 2013-3-22 13:56

强人,研究研究。
作者: 狱渊    时间: 2013-5-1 10:13

功能很好了 至少看得明白就行




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2