中华农历论坛知识讨论区历法知识 → [原创]干支纪时模板


  共有14525人关注过本帖树形打印

主题:[原创]干支纪时模板

帅哥哟,离线,有人找我吗?
秦汉昌
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
[原创]干支纪时模板  发帖心情 Post By:2009/1/8 2:38:00

\  使用本模板必须装载干支转换模板,源程序连接地址如下:

\ [秦汉昌、万邦来朝九龙原创]干支转换模板更新[苏子琼汉语编程论坛]
\ 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编辑过]

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
浪-淘-沙
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2009/1/8 12:24:00

还好.六十甲子正好可以表示60秒(也可以表示60分)

有一点请在注释里说明一下,你的"时"是"小时"吧,不是"时辰"吧?即你的子时可能是半夜也可能是中午?


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2009/1/8 21:08:00

以下是引用浪-淘-沙在2009-1-8 12:24:00的发言:

还好.六十甲子正好可以表示60秒(也可以表示60分)

有一点请在注释里说明一下,你的"时"是"小时"吧,不是"时辰"吧?即你的子时可能是半夜也可能是中午?

 一个时辰有120分钟,所以对应了两个甲子分,为了区别,我增加了刻;刻的排法对应于时辰的关系,就像日的排法对应于月的关系一样,刻与日都是从第一个甲子年的第一刻或第一日连续推算而来的。

  

  

   我所谓的时,都是指大时,即时辰;我们称时辰,就简称时,比如子时,丑时等等。只有小时才叫全称,比如,1小时30分.

   时辰的排序和八字排序相符,从23点至凌晨1点为子时,因为夏历日期很难用日期值简单推算,月份排序,暂时以建子为正,即传统意义上的周历,我称这样排序为阳历月序,建寅为正的为夏历月序。

[此贴子已经被作者于2009-1-8 23:28:40编辑过]

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  4楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2009/1/8 21:11:00

呵呵,再增加一个显示格式 :

编 显示干支纪元
回车
双∴ ∽ 干支纪年 印字串 回车
双♂ 7 √ ∵ 2 § 7 个空格 干支纪日 印字串 回车
5 √ 双∴ 干支纪时 印字串 回车 。

测试结果如下:

4706 1 1 1 1 1 显示干支纪元
甲子纪 乙丑世 壬午代 己丑年
       甲子月 己巳日
乙丑时 辛未刻 乙丑分 乙丑秒
★.


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

[原创]干支纪时模板








签名