⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lunar.inc

📁 阳历 农历转换开发包
💻 INC
字号:
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 申明:
; 1. 本开发包为共享软件,你可以免费传播、使用本软件,但不得用于商业目的。
; 2. 传播时请不要改动版权信息,并注明出处。
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Author:	罗云彬
; Web:		http://asm.yeah.net (罗云彬的编程乐园)
; E-mail:	bigluo@telekbird.com.cn
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; Version	1.0
;		Date: 2000.09.15
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 阳历/农历转换计算开发包
;
; 文件包括:
;	Lunar.inc -- Win32Asm 语言的 include 文件,定义了使用的数据结构
;		     如果使用 C 或其他语言请自行修改格式
;	Lunar.dll -- 动态连接库文件
;	Lunar.lib -- Lunar.dll 对应的导入库文件
;
; 开发包包括一个 Win32Asm 的使用例子在 Example 目录中
;
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 功能:计算 1901 - 2050 的农历、节气数据
; 使用:
;	1. 定义 LUNARDATA 数据结构
;	2. 填写 LUNARDATA 数据结构的输入字段并调用 _GetLunarData
;	3. 输出结果在 LUNARDATA 数据结构的输出字段中
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 库文件中可以使用的有 3 个函数
;
; 1. 取农历数据 _GetLunarData(_lpstLunarData)
;	输入:LUNARDATA 结构地址,输入阳历数据填写在结构中
;	输出:如果成功 eax = 0,返回数据在 LUNARDATA 结构中
;	如果输入输入超过范围或不合法,返回 eax <> 0
;
; 2. 取对应阳历年月的天数 _GetMonthDays(dwYear,dwMonth)
;	输入:年份,月份
;	输出:eax = 天数
;
; 3. 检测对应年份是否闰年 _IsLeapYear(dwYear)
;	输入:年份
;	输出:eax = 1 是闰年,否则 eax = 0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

_GetLunarData	proto	:DWORD
_GetMonthDays	proto	:DWORD,:DWORD
_GetWeekDay	proto	:DWORD,:DWORD,:DWORD

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 数据结构
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

;********************************************************************
; LUNARDATA 定义输入参数和输出结果
;********************************************************************
LUNARDATA	struct

;********************************************************************
; 下面由调用者填写,为输入参数
;********************************************************************
dwYear		dd	?	;输入参数 - 年,十进制,例如 2000
dwMonth		dd	?	;输入参数 - 月,十进制,例如 10
dwDay		dd	?	;输入参数 - 日,十进制,例如 1

;********************************************************************
; 下面由子程序返回,为输出参数
;********************************************************************
dwLunarYear	dd	?	;农历年,如 2000
dwLunarMonth	dd	?	;农历月,如 12
dwLunarDay	dd	?	;农历日,如 31
dwWeekDay	dd	?	;星期,星期日=0,星期一=1 ...
dwIsLeapMonth	dd	?	;是否是闰月,返回 1 为农历闰月

szLunarYear	db	6 dup (?)	;天干年字符串,如“辛亥”
szLunarYearA	db	4 dup (?)	;天干年字符串,如“鼠”
szLunarMonth	db	10 dup (?)	;农历月字符串,如“闰十二月”
szLunarDay	db	6 dup (?)	;农历日字符串,如“初十”
szLunarHolDay	db	6 dup (?)	;农历节气字符串,如“大暑”
szWeekDay	db	8 dup (?)	;星期字符串,如“星期一”

LUNARDATA	ends
;********************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -