- 帖子
- 44
- 积分
- 234
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2009-10-27
|
77楼
发表于 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%蟹一,秤二,蟹狮 |
|