?? lunar.inc
字號:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 申明:
; 1. 本開發(fā)包為共享軟件,你可以免費(fèi)傳播、使用本軟件,但不得用于商業(yè)目的。
; 2. 傳播時(shí)請不要改動版權(quán)信息,并注明出處。
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Author: 羅云彬
; Web: http://asm.yeah.net (羅云彬的編程樂園)
; E-mail: bigluo@telekbird.com.cn
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Version 1.0
; Date: 2000.09.15
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 陽歷/農(nóng)歷轉(zhuǎn)換計(jì)算開發(fā)包
;
; 文件包括:
; Lunar.inc -- Win32Asm 語言的 include 文件,定義了使用的數(shù)據(jù)結(jié)構(gòu)
; 如果使用 C 或其他語言請自行修改格式
; Lunar.dll -- 動態(tài)連接庫文件
; Lunar.lib -- Lunar.dll 對應(yīng)的導(dǎo)入庫文件
;
; 開發(fā)包包括一個(gè) Win32Asm 的使用例子在 Example 目錄中
;
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 功能:計(jì)算 1901 - 2050 的農(nóng)歷、節(jié)氣數(shù)據(jù)
; 使用:
; 1. 定義 LUNARDATA 數(shù)據(jù)結(jié)構(gòu)
; 2. 填寫 LUNARDATA 數(shù)據(jù)結(jié)構(gòu)的輸入字段并調(diào)用 _GetLunarData
; 3. 輸出結(jié)果在 LUNARDATA 數(shù)據(jù)結(jié)構(gòu)的輸出字段中
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 庫文件中可以使用的有 3 個(gè)函數(shù)
;
; 1. 取農(nóng)歷數(shù)據(jù) _GetLunarData(_lpstLunarData)
; 輸入:LUNARDATA 結(jié)構(gòu)地址,輸入陽歷數(shù)據(jù)填寫在結(jié)構(gòu)中
; 輸出:如果成功 eax = 0,返回?cái)?shù)據(jù)在 LUNARDATA 結(jié)構(gòu)中
; 如果輸入輸入超過范圍或不合法,返回 eax <> 0
;
; 2. 取對應(yīng)陽歷年月的天數(shù) _GetMonthDays(dwYear,dwMonth)
; 輸入:年份,月份
; 輸出:eax = 天數(shù)
;
; 3. 檢測對應(yīng)年份是否閏年 _IsLeapYear(dwYear)
; 輸入:年份
; 輸出:eax = 1 是閏年,否則 eax = 0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
_GetLunarData proto :DWORD
_GetMonthDays proto :DWORD,:DWORD
_GetWeekDay proto :DWORD,:DWORD,:DWORD
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 數(shù)據(jù)結(jié)構(gòu)
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;********************************************************************
; LUNARDATA 定義輸入?yún)?shù)和輸出結(jié)果
;********************************************************************
LUNARDATA struct
;********************************************************************
; 下面由調(diào)用者填寫,為輸入?yún)?shù)
;********************************************************************
dwYear dd ? ;輸入?yún)?shù) - 年,十進(jìn)制,例如 2000
dwMonth dd ? ;輸入?yún)?shù) - 月,十進(jìn)制,例如 10
dwDay dd ? ;輸入?yún)?shù) - 日,十進(jìn)制,例如 1
;********************************************************************
; 下面由子程序返回,為輸出參數(shù)
;********************************************************************
dwLunarYear dd ? ;農(nóng)歷年,如 2000
dwLunarMonth dd ? ;農(nóng)歷月,如 12
dwLunarDay dd ? ;農(nóng)歷日,如 31
dwWeekDay dd ? ;星期,星期日=0,星期一=1 ...
dwIsLeapMonth dd ? ;是否是閏月,返回 1 為農(nóng)歷閏月
szLunarYear db 6 dup (?) ;天干年字符串,如“辛亥”
szLunarYearA db 4 dup (?) ;天干年字符串,如“鼠”
szLunarMonth db 10 dup (?) ;農(nóng)歷月字符串,如“閏十二月”
szLunarDay db 6 dup (?) ;農(nóng)歷日字符串,如“初十”
szLunarHolDay db 6 dup (?) ;農(nóng)歷節(jié)氣字符串,如“大暑”
szWeekDay db 8 dup (?) ;星期字符串,如“星期一”
LUNARDATA ends
;********************************************************************
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -