52 lines
2.5 KiB
Text
52 lines
2.5 KiB
Text
EnableExplicit
|
|
#BASE=4
|
|
#SPC=Chr(32)
|
|
|
|
Procedure.s ChineseZodiac(n.i)
|
|
Define cycle_year.i=n-#BASE,
|
|
stem_number.i = cycle_year%10+1,
|
|
element_number.i = Round(stem_number/2,#PB_Round_Nearest),
|
|
branch_number.i = cycle_year%12+1,
|
|
aspect_number.i = cycle_year%2+1,
|
|
index.i = cycle_year%60+1,
|
|
celestial$ = Chr(PeekU(?Celestial_stem+SizeOf(Character)*(stem_number-1))),
|
|
c_pinyin$ = StringField(PeekS(?Stem),stem_number,"\"),
|
|
element$ = StringField(PeekS(?Element),element_number,"\"),
|
|
branch_han$ = Chr(PeekU(?Terrestrial_branch+SizeOf(Character)*(branch_number-1))),
|
|
b_pinyin$ = StringField(PeekS(?Branch),branch_number,"\"),
|
|
animal$ = StringField(PeekS(?Zodiac_animal),branch_number,"\"),
|
|
aspect$ = StringField(PeekS(?Aspect),aspect_number,"\"),
|
|
YearOfCycle$ = Str(index)
|
|
ProcedureReturn Str(n)+#SPC+
|
|
LSet(element$,7,#SPC)+#SPC+
|
|
LSet(animal$,7,#SPC)+#SPC+
|
|
LSet(aspect$,6,#SPC)+#SPC+
|
|
RSet(YearOfCycle$,11)+#SPC+
|
|
LSet(c_pinyin$+"-"+b_pinyin$,9,#SPC)+#SPC+
|
|
celestial$+branch_han$
|
|
EndProcedure
|
|
|
|
LoadFont(0,"Consolas",12)
|
|
If OpenWindow(0,#PB_Ignore,#PB_Ignore,600,400,"Chinese Zodiac",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
|
|
EditorGadget(0, 8, 8, 600-16, 400-16) : SetGadgetFont(0,FontID(0))
|
|
Define header$="Year Element Animal Aspect YearOfCycle ASCII Chinese"
|
|
AddGadgetItem(0,-1,header$)
|
|
AddGadgetItem(0,-1,ChineseZodiac(1935))
|
|
AddGadgetItem(0,-1,ChineseZodiac(1938))
|
|
AddGadgetItem(0,-1,ChineseZodiac(1968))
|
|
AddGadgetItem(0,-1,ChineseZodiac(1972))
|
|
AddGadgetItem(0,-1,ChineseZodiac(1976))
|
|
AddGadgetItem(0,-1,ChineseZodiac(1984))
|
|
AddGadgetItem(0,-1,ChineseZodiac(Year(Date())))
|
|
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
|
|
EndIf
|
|
|
|
DataSection
|
|
Celestial_stem: : Data.u $7532, $4E59, $4E19, $4E01, $620A, $5DF1, $5E9A, $8F9B, $58EC, $7678
|
|
Terrestrial_branch: : Data.u $5B50, $4E11, $5BC5, $536F, $8FB0, $5DF3, $5348, $672A, $7533, $9149, $620C, $4EA5
|
|
Zodiac_animal: : Data.s "Rat\Ox\Tiger\Rabbit\Dragon\Snake\Horse\Goat\Monkey\Rooster\Dog\Pig"
|
|
Element: : Data.s "Wood\Fire\Earth\Metal\Water"
|
|
Aspect: : Data.s "yang\yin"
|
|
Stem: : Data.s "jiă\yĭ\bĭng\dīng\wù\jĭ\gēng\xīn\rén\gŭi"
|
|
Branch: : Data.s "zĭ\chŏu\yín\măo\chén\sì\wŭ\wèi\shēn\yŏu\xū\hài"
|
|
EndDataSection
|