\ 使用本模板必须装载干支转换模板,源程序连接地址如下:
\ [秦汉昌、万邦来朝九龙原创]干支转换模板更新[苏子琼汉语编程论坛]
\ http://bbs.suziqiong.cn/bbs/dispbbs.asp?boardid=50&Id=130
装载 D:\DOWNLOADS\汉语编程\汉语编程学习\干支转换模板.CHP
编 是闰年 ( 年份 --- 真或假标志 )
400 求余数 ♂ ♂ 0> ↑↓ 100 求余数 0= 与 0=
↑↓ 4 求余数 0= 与 。
编 求历史闰年数 ( 当前年份 --- 历史闰年数 ) \ 当前年份以前的闰年数(不含当前年份)
{ \ 闰年数 -- }
255 个字节空给 闰年数
0 写入 闰年数
1
?循环 内环数
是闰年 就 1 +写入 闰年数 然后
回环 闰年数 。
编 平年月累计天数 ( 月序号 --- 年初至月底天数 )
如和 0 对应就 0
而和 1 对应就 31
而和 2 对应就 59
而和 3 对应就 90
而和 4 对应就 120
而和 5 对应就 151
而和 6 对应就 181
而和 7 对应就 212
而和 8 对应就 243
而和 9 对应就 273
而和 10 对应就 304
而和 11 对应就 334
而和 12 对应就 365
而后 。
编 闰年月累计天数 ( 月序号 --- 年初至月底天数 )
♂ 0 < 就 字串" 月份不正确" 印字串 否则
♂ 2 < 就 平年月累计天数 否则 平年月累计天数 1 +
然后 然后 。
编 年转日 ( 当前年份 --- 元年至当前年底的日数 )
♂ 1 + 求历史闰年数 ↑↓ 365 * + 。
编 日期值 ( 年 月 日 --- 日期值 ) \ 将年月日三个数字以日记数
∴ ♂ 1 - 年转日
3 √ 1 - ∴ 是闰年 就 闰年月累计天数 否则
平年月累计天数 然后 + + 。
编 年份值 ( 日期值 --- 年份值 ) \ 将一个日期值数字所包含的完整年份计算出来
365 / ♂ 求历史闰年数 365 / - 。
编 平年计月日 ( 年初至某月某日的累计天数 --- 某月某日 )
♂ 1 32 >=且< 就 32 求余数 1 ↑↓ 否则
♂ 32 60 >=且< 就 31 求余数 2 ↑↓ 否则
♂ 60 91 >=且< 就 59 求余数 3 ↑↓ 否则
♂ 91 121 >=且< 就 90 求余数 4 ↑↓ 否则
♂ 121 152 >=且< 就 120 求余数 5 ↑↓ 否则
♂ 152 182 >=且< 就 151 求余数 6 ↑↓ 否则
♂ 182 213 >=且< 就 181 求余数 7 ↑↓ 否则
♂ 213 244 >=且< 就 212 求余数 8 ↑↓ 否则
♂ 244 274 >=且< 就 243 求余数 9 ↑↓ 否则
♂ 274 305 >=且< 就 273 求余数 10 ↑↓ 否则
♂ 305 335 >=且< 就 304 求余数 11 ↑↓ 否则
♂ 335 366 >=且< 就 334 求余数 12 ↑↓ 否则
字串" 月日值不正确" 印字串
然后 然后 然后 然后 然后 然后 然后 然后 然后 然后 然后 然后 。
编 闰年计月日 ( 年初至某月某日的累计天数 --- 某月某日 )
♂ 1 32 >=且< 就 32 求余数 1 ↑↓ 否则
♂ 32 61 >=且< 就 31 求余数 2 ↑↓ 否则
♂ 61 92 >=且< 就 60 求余数 3 ↑↓ 否则
♂ 92 122 >=且< 就 91 求余数 4 ↑↓ 否则
♂ 122 153 >=且< 就 121 求余数 5 ↑↓ 否则
♂ 153 183 >=且< 就 152 求余数 6 ↑↓ 否则
♂ 183 214 >=且< 就 182 求余数 7 ↑↓ 否则
♂ 214 245 >=且< 就 213 求余数 8 ↑↓ 否则
♂ 245 275 >=且< 就 244 求余数 9 ↑↓ 否则
♂ 275 306 >=且< 就 274 求余数 10 ↑↓ 否则
♂ 306 336 >=且< 就 305 求余数 11 ↑↓ 否则
♂ 336 367 >=且< 就 335 求余数 12 ↑↓ 否则
字串" 月日值不正确" 印字串
然后 然后 然后 然后 然后 然后 然后 然后 然后 然后 然后 然后 。
编 计年月日 ( 日期值 --- 年 月 日 ) \ 将一个日期值数以年月日表示
♂ 年份值 1 + ↑↓ ∽ 1 - 年转日 - ∽
是闰年 就 闰年计月日 否则 平年计月日 然后 。
编 干支后纪年 ( 距某甲子年的年数值 --- 纪 世 代 年 )
{ \ 干支后纪年串 -- }
255 个字节空给 干支后纪年串
♂ 216000 / 1 + ♂ 10 求余数 ↑↓ 12 求余数 数转干支 干支后纪年串 字串传送
字串" 纪 " 干支后纪年串 字串+传送
♂ 3600 / 1 + ♂ 10 求余数 ↑↓ 12 求余数 数转干支 干支后纪年串 字串+传送
字串" 世 " 干支后纪年串 字串+传送
♂ 60 / 1 + ♂ 10 求余数 ↑↓ 12 求余数 数转干支 干支后纪年串 字串+传送
字串" 代 " 干支后纪年串 字串+传送
♂ 10 求余数 ↑↓ 12 求余数 数转干支 干支后纪年串 字串+传送
字串" 年" 干支后纪年串 字串+传送
干支后纪年串 计字节
。
编 干支前纪年 ( 距某甲子年的年数值 --- 纪 世 代 年 )
{ \ 干支前纪年串 -- }
255 个字节空给 干支前纪年串
字串" 前 " 干支前纪年串 字串传送
♂ 216000 / 1 + ♂ 10 求余数 ↑↓ 12 求余数 数转干支 干支前纪年串 字串+传送
字串" 纪 " 干支前纪年串 字串+传送
♂ 3600 / 1 + ♂ 10 求余数 ↑↓ 12 求余数 数转干支 干支前纪年串 字串+传送
字串" 世 " 干支前纪年串 字串+传送
♂ 60 / 1 + ♂ 10 求余数 ↑↓ 12 求余数 数转干支 干支前纪年串 字串+传送
字串" 代 " 干支前纪年串 字串+传送
♂ 10 求余数 ↑↓ 12 求余数 数转干支 干支前纪年串 字串+传送
字串" 年" 干支前纪年串 字串+传送
干支前纪年串 计字节
。
编 干支纪年 ( 距某甲子年的年数值 --- 纪 世 代 年 )
♂ 属性值 0= 非 就 实>数 然后
♂ 0= 就 字串" 年数值不正确" 印字串 否则
♂ 0> 就 干支后纪年 否则 绝对值 干支前纪年
然后 然后 。
编 干支纪日 ( 年月日三个数 --- 干支月日 )
{ \ 临时日期串 -- }
255 个字节空给 临时日期串
2 § 0= 就 字串" 年份不正确" 印字串 否则
∽ 0= 就 字串" 月份不正确" 印字串 否则
♂ 0= 就 字串" 计日不正确" 印字串 否则
2 § 2 § ↑↓ 1 - 12 * ∽ + 10 求余数 ↑↓ 12 求余数 数转干支 临时日期串 字串传送
字串" 月 " 临时日期串 字串+传送
日期值 ♂ 10 求余数 ↑↓ 12 求余数 数转干支 临时日期串 字串+传送
字串" 日 " 临时日期串 字串+传送
临时日期串 计字节
然后 然后 然后 。
编 干支纪时 ( 年月日时分秒六个数 --- 干支时刻分秒 )
{ \ 临时时间串 -- }
255 个字节空给 临时时间串
5 § 0= 就 字串" 年份不正确" 印字串 否则
4 § 0= 就 字串" 月份不正确" 印字串 否则
3 § 0= 就 字串" 计日不正确" 印字串 否则
双∴ 5 √ 日期值 1 - 24 * 3 √
双♂ 3 + + 2 / 10 求余数 ↑↓ 3 + 2 / 12 求余数 数转干支 临时时间串 字串传送
字串" 时 " 临时时间串 字串+传送
60 * 2 § + 15 / 1 + ♂ 10 求余数 ↑↓ 12 求余数 数转干支 临时时间串 字串+传送
字串" 刻 " 临时时间串 字串+传送
↑↓ 1 + ♂ 10 求余数 ↑↓ 12 求余数 数转干支 临时时间串 字串+传送
字串" 分 " 临时时间串 字串+传送
♂ 1 + ♂ 10 求余数 ↑↓ 12 求余数 数转干支 临时时间串 字串+传送
字串" 秒 " 临时时间串 字串+传送
临时时间串 计字节
然后 然后 然后 。
\ ////假设距今(西元2009年)4706年前0时0分0秒为甲子纪 甲子世 甲子代 甲子年 甲子时 甲子时 甲子秒,计算如下:
\ 1 1 1 1 1 1 干支纪时 印字串 乙丑时 甲子刻 乙丑分 乙丑秒 ★.
\ 0 0 0 0 0 0 干支纪时 印字串 年份不正确★.....
\ 1 1 1 0 0 0 干支纪时 印字串 甲子时 甲子刻 甲子分 甲子秒 ★......
\ 1 1 1 0 0 1 干支纪时 印字串 甲子时 甲子刻 甲子分 乙丑秒 ★.......
\ 4706 干支纪年 印字串 甲子纪 乙丑世 壬午代 己丑年★
\ 4706 1 1 干支纪日 印字串 甲子月 己巳日 ★.......
\ 4706 1 1 0 0 0 干支纪时 印字串 甲子时 庚午刻 甲子分 甲子秒 ★........
\ 注意,年月日刻从1开始计,时分秒从0开始计;由于目前只有阳历日期值,干支纪月暂时采用阳历的“建子为正”,稍加修改可以转成夏历的建寅为正。
\ /////////////★秦汉昌★2009.元.7★上海★
[此贴子已经被作者于2009-1-8 10:48:04编辑过]