中华农历论坛知识讨论区历法知识 → [原创]夏历与西历日期转换(汉语编程源码)


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

主题:[原创]夏历与西历日期转换(汉语编程源码)

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


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
[原创]夏历与西历日期转换(汉语编程源码)  发帖心情 Post By:2010/10/20 13:19:00

 

汉语编程工具下载地址

 

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
\\ 用户自定义词汇:通用新词.chp
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


编 转弧度         ( 角度 --- 弧度 )
  ♂ 属性值 0=
  就    数>实
  然后   π * 180. /
   。

编 转角度      ( 弧度 --- 角度 )
  ♂ 属性值 0=
  就    数>实
  然后  180. *  π  /
   。

编 转时度      ( 弧度 --- 小时 )
  ♂ 属性值 0=
  就    数>实
  然后  12. *  π  /
   。

编 弧度>角秒    ( 弧度 --- 角秒 )
   转角度 3600. *
   。

编 弧度>时秒    ( 弧度 --- 时秒 )
   转时度 3600. *
   。

编 计度分秒     ( 角秒 --- 秒 分 度 )
   60 /余商
   60 /余商
   。

编 角度值    ( 秒 分 度 --- 秒 )
   3600 *  ↑↓ 60 * + +
   。

编 正弦      FSIN   。
编 余弦      FCOS   。
编 正切      FTAN   。
编 余切       -1. *  π 2. / + FTAN   。        \ cotx=tan(-x+π/2),

编 反正弦     FASIN   。
编 反余弦     FACOS   。
编 反正切     FATAN   。
编 反余切             。

编 双曲正弦     FSINH  。                       \ sinh(x)=(exp(x) - exp(-x)) / 2.0;
编 双曲余弦     FCOSH  。                       \ cosh(x)=(exp(x) + exp(-x)) / 2.0;
编 双曲正切     FTANH  。                       \ tanh(x) = sinh(x) / cosh(x);
编 双曲余切     1. FTANH /   。                 \ coth(x) = 1 / tanh(x);


编 双曲反正弦  FASINH  。
编 双曲反余弦  FACOSH 。
编 双曲反正切  FATANH  。
编 双曲反余切          。

 

编 建缓冲       ( 长度 -名称- )
  建词  字节空出
  。

 


编 建字串常量     ( 地地址 长度 -<名称>- )             \ 编译时
               ( 计数字节地址  --- 地址 长度 )     \ 运行时
  建词  ♂  可用地址 写  ♂ 1+  单元+
  可用地址 单元+ ↑↓  字节空出  ↑↓ 字节传送 
  动作  ♂ 单元+  ↑↓ 读
  。

编 建长串       ( 地址 长度 -<名称>- )           
  建词  ♂  可用地址 写  ♂ 1+  单元+
  可用地址 单元+ ↑↓  字节空出  ↑↓ 字节传送 
  。

编 计长串  ( 计数地址 --- 地址 长度 )
   ♂ 单元+  ↑↓ 读
   。

编 长串首传     ( 地址 长度 缓冲 --- )
  ♂ 单元+ ∵ ∽ ↑↓ 写 字节传送
   。

编 长串续传     ( 地址 长度 缓冲 --- )
  ♂ ♂ 读 单元+ + ∵ ∽ ↑↓ +写 字节传送
  。
 

编 印长串
  0 ?循环 ♂ 内环数 +  字节读  印字符 内环数 80 求余数   0= 就  回车  然后
     回环  ♀
     。


((
测试实例:

300 建缓冲 地址一

编 向地址一写入140个字
   20 0
循环 字串" 中华人民共和国"  地址一  4 +  内环数 14 * +  ↑↓ 字节传送
回环 280 地址一 写  。

向地址一写入140个字

地址一 计长串 看数摞
印长串


300 建缓冲 地址二

地址一 计长串 地址二 长串首传

地址二 计长串 看数摞
印长串

))

 

 


编 建字符数组       ( 行 列 -<名称>- )    \ 编译时
                  ( 行 列  --- 值 )     \ 运行时
    建词  1+ ♂ 可用地址 写 ↑↓ 1+ * 12 *
    可用地址 单元+ ∽ 3 单元*+  字节空出
    ♂  ∴  +  
     ?循环 0 动态内存分配 内环数  写  -12
     +回环   
     动作  计算数组位置  读 ♂ 单元+  ↑↓ 读
    。

编 设置数组内容       ( 地址 长度 数组地址 --- )
   ♂ 读 有纠错释放内存
    ∵  ♂ 1+ 单元+   动态内存分配  ∵
   2 §  ♂ 单元+ ∵ ∽ ↑↓ 写 字节传送  ↑↓  写
   。

编 传入数组     ( 地址 长度 行 列 -<名称>- )
   找 >实体域 编解态 读
   就    强编译 立即数
         编译 计算数组位置  \  再编译
         编译  设置数组内容
   否则   计算数组位置 设置数组内容
   然后  
    。

 



 


 


 

[此贴子已经被作者于2011-3-4 18:47:31编辑过]

版主评定:好评,获得5个金币奖励好评,获得5个金币奖励
(理由:原创,鼓励。)
支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

\ ******************************
\ *中文数字与阿拉伯数字之间的转换
\ ******************************


编 取整数 ( 实数或整数 --- 整数 )
 ♂ 属性值 0<> 就 实>数 然后
  。

编 转简体中文数字   ( 阿拉伯数字 --- 地址 长度 )    \ 将阿拉伯数字换成简体中文数字
   取整数 
   ♂ 0 11 >=且<
   就    字串" 零一二三四五六七八九十"  ♀  ↑↓ 2 * + 2
   否则  ♀  mb_ok 字串" 阿拉伯数字不正确" 系统对话框 ♀ 全复位
   然后
   。

编 转正体中文数字    ( 阿拉伯数字 --- 地址 长度 )   \ 将阿拉伯数字换成正体中文数字
   取整数 
   ♂ 0 11 >=且<
   就    字串" 零壹贰叁肆伍陆柒捌玖拾"  ♀  ↑↓ 2 * + 2
   否则  ♀  mb_ok 字串" 阿拉伯数字不正确" 系统对话框 ♀ 全复位
   然后
   。


编 转阿拉伯数字   ( 地址 长度 --- 阿拉伯数字 )   \ 将中文数字换成阿拉伯数字
  字串" 零一二三四五六七八九十" 3 § 3 § 串搜寻 -1 =
  就    22 ↑↓ - 2 /   双↑↓ 双♀  ↑↓♀ 
  否则  双♀ 字串" 零壹贰叁肆伍陆柒捌玖拾" 3 § 3 § 串搜寻 -1 =
  就    22 ↑↓ - 2 / 双↑↓ 双♀  ↑↓♀ 
  否则  双♀ mb_ok  字串" 中文数字不正确" 系统对话框 ♀ 全复位
  然后
  然后
  。


编 单数显    ( 多位数字 --- 多个数字 数字个数 )     \  将多位数字的每一位按顺序单独列出
   取整数 数>串 ♂ 0
   ?循环 ∽ 内环数 + 1 串>数 双♀ ∵
   回环 ↑↓ ♀
   。

编  简体中文数字  ( 多位阿拉伯数字 --- 多位简体中文数字 )
   { \  简体中文数字串 -- }
   255  个字节空给  简体中文数字串
   单数显 ♂ 0 
  ?循环 ♂ 内环数 - √
        转简体中文数字 内环数 0=
        就    简体中文数字串 字串传送
        否则  简体中文数字串 字串+传送
       然后
   回环 ♀     简体中文数字串 计字节
   。

 

编  正体中文数字     ( 多位阿拉伯数字 --- 多位正体中文数字 )
   { \  正体中文数字串 -- }
   255  个字节空给  正体中文数字串
   单数显 ♂ 0 
  ?循环 ♂ 内环数 - √
        转正体中文数字 内环数 0=
        就    正体中文数字串 字串传送
        否则  正体中文数字串 字串+传送
       然后
   回环 ♀     正体中文数字串 计字节
   。

 


编  阿拉伯数字     ( 地址 长度 --- 阿拉伯数字 )
   { \   阿拉伯数字串 -- }
   255  个字节空给   阿拉伯数字串
   0
  ?循环   ♂  内环数 + 2 转阿拉伯数字 数>串
        内环数 0=
        就    阿拉伯数字串 字串传送
        否则  阿拉伯数字串 字串+传送
        然后 2
   +回环      阿拉伯数字串 计字节   串>数 双♀
   。
 

编 整次方    (  底数 指数 --- 幂 )
  { \  数壹 -- }
  双♂ ∽ 属性值 0=
  就    1
  否则  1.0  
  然后  ↑↓  绝对值  0 
       ?循环   ∽   *   
        回环   ↑↓♀   ↑↓  0<
  就    ♂ 属性值 0=
         就    数>实  然后
         1.0 ↑↓ /  ↑↓♀
  否则  ↑↓♀
  然后
  。

编  阿拉伯数字1     ( 地址 长度 --- 阿拉伯数字 )
   { \   阿拉伯数字串 -- }
   255  个字节空给   阿拉伯数字串
   0   ∽   0 
  ?循环  2 §   内环数 + 2 转阿拉伯数字
        2 § 2 -  内环数 - 2 / 10 ↑↓  整次方 * +  2
   +回环   ∵  双♀
   。

 

编 简体中文大整数位        ( 中文大整数位序数 --- 简体中文大整数位名词 )  ((  中文大整数位序数是指将某整数位以10的N次方表示,再将10的指数以2的N次方表示,如果该整数以10的N次方表示的指数同时也能以2的N次方的形式表达,那么2的指数就为大整数位,2的指数为其序数(2的指数小于2时,不适用此规则,而特规定个位为第一个大整数位,其序数为1) ))
  取整数  ♂ 1 14 >=且<
  就   字串" 点万亿兆京垓杼穰沟涧正载极" ♀ ↑↓  1 - 2 * + 2 
  否则 ♀ mb_ok   字串" 中文大整数位序数不正确" 系统对话框 ♀ 全复位
  然后
  。

编 正体中文大整数位    ( 中文大整数位序数 --- 正体中文大整数位名词 )  ((  中文大整数位序数是指将某整数位以10的N次方表示,再将10的指数以2的N次方表示,如果该整数以10的N次方表示的指数同时也能以2的N次方的形式表达,那么2的指数就为大整数位,2的指数为其序数(2的指数小于2时,不适用此规则,而特规定个位为第一个大整数位,其序数为1) ))
  取整数 ♂ 1 14 >=且<
  就   字串" 點萬億兆京垓杼穰溝澗正載極" ♀ ↑↓  1 - 2 * + 2
  否则 ♀ mb_ok   字串" 中文大整数位序数不正确" 系统对话框 ♀ 全复位
  然后
  。


编 简体中文小整数位    ( 中文小整数位序数  --- 简体中文小整数位名词 )   \  中文小整数位序数为: 1、2、3(十、百、千)
  取整数 ♂ 1 4 >=且<
  就    字串" 十百千"  ♀ ↑↓  1 - 2 * + 2
  否则  ♀  mb_ok   字串" 中文小整数位阿拉伯序数不正确" 系统对话框 ♀ 全复位
  然后
   。

编 正体中文小整数位    ( 中文小整数位序数  --- 正体中文小整数位名词 )   \  中文小整数位序数为: 1、2、3(十、百、千)
  取整数 ♂ 1 4 >=且<
  就   字串" 拾佰仟"  ♀ ↑↓  1 - 2 * + 2
  否则 ♀  mb_ok   字串" 中文小整数位阿拉伯序数不正确" 系统对话框 ♀ 全复位
  然后
  。

 

0 给 大位基值
1 给 大位基序

编 大整数位基变换      ( 大整数位序 --- 以该整数位序对应整数位为基值的计数 )
 ♂ 1 = 
 就   写入 大位基序  0 写入 大位基值
 否则 ♂ 2 14 >=且<
 就   ♂ 写入 大位基序 2 ↑↓ 整次方 写入 大位基值
 否则 ♀ 字串" 大整数位序数不正确" 印字串
 然后
 然后
  。


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


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

编 简体中文整数位   ( 中文整数位序数 --- 简体中文整数位名词 )    \  中文整数位序数为某整数位以10的N次方表示的指数
  取整数 ♂ 4 求余数 0= 非
  就   4 求余数 简体中文小整数位
  否则 ♂   0=
  就   ♀ 1 简体中文大整数位
  否则 14 2
       循环 ♂ 2 内环数 整次方 =
            就 内环数 简体中文大整数位
            然后
       回环  ∴ ♀
   然后
   然后
   。

编 正体中文整数位   ( 中文整数位序数 --- 正体中文整数位名词 )    \  中文整数位序数为某整数位以10的N次方表示的指数
  取整数 ♂ 4 求余数 0= 非
  就   4 求余数 正体中文小整数位
  否则 ♂   0=
  就   ♀ 1 正体中文大整数位
  否则 14 2
       循环 ♂  2 内环数 整次方 =
            就 内环数 正体中文大整数位
            然后
       回环  ∴ ♀
   然后
   然后
   。

编 字串拼接      ( 地址 长度   地址 长度  --- )
   { \  临时长串 -- }   
    255 个字节空给 临时长串
    双↑↓
    临时长串  字串传送
    临时长串  字串+传送
    临时长串  计字节
    。

编 零数位去位名      ( 地址 长度 整数位数  --- )
  { \ 临时去位串 -- }
  255 个字节空给 临时去位串
  0
  ?循环 内环数 4 求余数 0= 非
        就   双♂  字串" 零" 内环数 简体中文整数位 字串拼接
             串搜寻 -1 =  
        就   ↑↓♀  双♂ 2 - - 
             双↑↓ ♀ ♂  ∴ ♂ 2 +  ∵
             临时去位串 字串传送
             +  ↑↓ 4 -          
             临时去位串 字串+传送
             临时去位串 计字节 
        否则  双♀
        然后
        然后
   回环
  。

编 连续零去零
   { \ 临时去零串 -- }
   255 个字节空给 临时去零串
   ♂ 2 / 1
   ?循环 双♂  字串" 零零"  串搜寻 -1 =
        就   ↑↓♀  双♂ 2 - - 
             双↑↓ ♀ ♂  ∴ ♂ 2 +  ∵
             临时去零串 字串传送
             +  ↑↓ 4 -          
             临时去零串 字串+传送
             临时去零串 计字节 
        否则  双♀
        然后
   回环
  。

编 位基增量
    ♂ 0= 就 大位基值 + 然后  。


编 去大整数位零值  ( 地址 长度 整数位数  --- )
   { \ 大整数位零值串 -- }
    255 个字节空给 大整数位零值串
     0
    ?循环 内环数 位基增量 4 求余数 0=
         就   双♂ 字串" 零" 内环数 位基增量 简体中文整数位 字串拼接  
              串搜寻 -1 =
         就  ↑↓♀  双♂ - 
             双↑↓ ♀ ♂ ∴ ♂ 2 + ∵
             大整数位零值串 字串传送
             + ↑↓ 2 - 
             大整数位零值串 字串+传送 
             大整数位零值串 计字节
         否则 双♀
         然后
         然后
     回环
     。

编 两大整数位相连取高位  ( 地址 长度 --- )
   { \ 大整数位串 -- }
   255 个字节空给 大整数位串
   14 3
   ?循环 内环数 2
   ?循环 次环数 简体中文大整数位
        内环数 简体中文大整数位 字串拼接 
        双∽  双↑↓ 串搜寻 -1 =
        就    ↑↓♀  双♂ 2 - - 
              双↑↓ ♀ ♂  ∴ ♂ 2 +  ∵
              大整数位串 字串传送
              字串" 零"
              大整数位串 字串+传送
              +  ↑↓ 4 -          
              大整数位串 字串+传送
              大整数位串 计字节 
        否则   双♀
        然后
   回环
   回环
  。
 
 
编 零数位去位名1      ( 地址 长度 整数位数  --- )
  { \ 临时去位串 -- }
  255 个字节空给 临时去位串
  0
  ?循环 内环数 4 求余数 0= 非
        就   双♂  字串" 零" 内环数 正体中文整数位 字串拼接
             串搜寻 -1 =  
        就   ↑↓♀  双♂ 2 - - 
             双↑↓ ♀ ♂  ∴ ♂ 2 +  ∵
             临时去位串 字串传送
             +  ↑↓ 4 -          
             临时去位串 字串+传送
             临时去位串 计字节 
        否则  双♀
        然后
        然后
   回环
  。
编 去大整数位零值1  ( 地址 长度 整数位数  --- )
   { \ 大整数位零值串 -- }
    255 个字节空给 大整数位零值串
     0
    ?循环 内环数 位基增量 4 求余数 0=
         就   双♂ 字串" 零" 内环数 位基增量 正体中文整数位 字串拼接  
              串搜寻 -1 =
         就  ↑↓♀  双♂ - 
             双↑↓ ♀ ♂ ∴ ♂ 2 + ∵
             大整数位零值串 字串传送
             + ↑↓ 2 - 
             大整数位零值串 字串+传送 
             大整数位零值串 计字节
         否则 双♀
         然后
         然后
     回环
     。

编 两大整数位相连取高位1  ( 地址 长度 --- )
   { \ 大整数位串 -- }
   255 个字节空给 大整数位串
   14 3
   ?循环 内环数 2
   ?循环 次环数 正体中文大整数位
        内环数 正体中文大整数位 字串拼接 
        双∽  双↑↓ 串搜寻 -1 =
        就    ↑↓♀  双♂ 2 - - 
              双↑↓ ♀ ♂  ∴ ♂ 2 +  ∵
              大整数位串 字串传送
              字串" 零"
              大整数位串 字串+传送
              +  ↑↓ 4 -          
              大整数位串 字串+传送
              大整数位串 计字节 
        否则   双♀
        然后
   回环
   回环
  。

 


编 简体中文计数     ( 阿拉伯整数 --- 简体中文整数 )    \  在中文整数表示的个位数后加了一个“点”字,这是留作未来扩展的,可以改成其他,比如,元,只等等。
  { \ 简体中文计数串 简体中文整数位数 -- }
   255 个字节空给 简体中文计数串
   0 写入 简体中文整数位数
   取整数 单数显 ♂   写入 简体中文整数位数 ♂ 0
   ?循环  ♂ 内环数 - √
         转简体中文数字 内环数 0=
         就   简体中文计数串 字串传送
         否则 简体中文计数串 字串+传送
         然后
        ♂ 内环数 1+ - 
        ♂ 0= 就 大位基值 + 然后 
        简体中文整数位  简体中文计数串 字串+传送
   回环 ♀
   简体中文计数串 计字节 简体中文整数位数 零数位去位名 连续零去零
   简体中文整数位数 去大整数位零值  两大整数位相连取高位  连续零去零 
    。

编 正体中文计数      \  在中文整数表示的个位数后加了一个“點”字,这是留作未来扩展的,可以改成其他,比如,元,只等等。
  { \ 正体中文计数串 正体中文整数位数 -- }
   255 个字节空给 正体中文计数串
   255 个字节空给 正体中文整数位数
   取整数 单数显 ♂  写入 正体中文整数位数 ♂ 0
   ?循环 ♂ 内环数 - √
         转正体中文数字 内环数 0=
         就   正体中文计数串 字串传送
         否则 正体中文计数串 字串+传送
         然后
        ♂ 内环数 1+ -
        ♂ 0= 就 大位基值 + 然后
        正体中文整数位 正体中文计数串 字串+传送
   回环 ♀
   正体中文计数串 计字节 正体中文整数位数 零数位去位名1 连续零去零
   正体中文整数位数 去大整数位零值1 两大整数位相连取高位1 连续零去零
    。


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


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

\ ******************************
\ *干支、属象、夏历日期转换
\ ******************************

编 天干串 ( 天干数 --- 地址 长度 )   \ 将天干数转换成天干串
  取整数  
  ♂ 0 >=  ∽ 10 < 与
  就    2 *  
       字串" 甲乙丙丁戊己庚辛壬癸"
       ♀ + 2
  否则  ♀ mb_ok 字串" 天干数有误" 系统对话框  ♀ 全复位
  然后
   。

编 地支串 ( 地支数 --- 地址 长度 )   \ 将地支数转换成地支串
  取整数  
  ♂ 0 >=  ∽ 12 < 与
  就    2 *  
       字串" 子丑寅卯辰巳午未申酉戌亥"
       ♀ + 2
  否则   ♀ mb_ok 字串" 地支数有误" 系统对话框  ♀ 全复位
  然后
   。


编 天干数 ( 地址 长度 --- 天干数 )   \ 将天干串转换成天干数
   字串" 甲乙丙丁戊己庚辛壬癸"
   双↑↓ 串搜寻 -1 = 
   就    20 ↑↓ - 2 /  ↑↓♀
   否则  ↑↓♀ mb_ok 字串" 天干串不正确" 系统对话框  ♀ 全复位
   然后
   。

编 地支数 ( 地址 长度 --- 地支数 )   \ 将地支串转换成地支数
   字串" 子丑寅卯辰巳午未申酉戌亥"
   双↑↓ 串搜寻 -1 = 
   就    24 ↑↓ - 2 /  ↑↓♀
   否则  ↑↓♀ mb_ok 字串" 地支串不正确" 系统对话框  ♀ 全复位
   然后
   。


编 干支串 ( 天干数 地支数 --- 地址 长度 )   \ 将干支数转换成干支串 
  { \ 干支缓存 -- }   255 个字节空给 干支缓存
  ↑↓  取整数  ↑↓  取整数 
  ∽ 2 求余数
  ∽ 2 求余数 =
  2 § 0 10 >=且<
  2 § 0 12 >=且<  与 与
  就    ↑↓ 天干串 干支缓存 字串传送
            地支串 干支缓存 字串+传送
 否则   双♀ mb_ok 字串" 干支数不正确" 系统对话框  ♀ 全复位
 然后   干支缓存 计字节
  。

编 干支数 ( 地址 长度 --- 天干数 地支数 )   \ 将干支串转换成干支数
   ∽ 2      天干数
   ∴  2 + 2 地支数
   ∴  ♀
   ∽ 2 求余数
   ∽ 2 求余数 <>
   就 mb_ok 字串" 干支串不正确"  系统对话框  ♀ 全复位
   然后
    。

 
编 显示六十甲子     ( ---  六十甲子  )   \  将六十甲子按顺序分六行显示出来
  回车 60 0
  循环 内环数 10 求余数 内环数 12 求余数 干支串 印字串 2 个空格
      内环数 1+ 10 求余数 0= 就 回车 然后
  回环
  。

编 属象串 ( 属象数 --- 地址 长度 )  
  取整数  
  ♂ 0 >=  ∽ 12 < 与
  就    2 *  
       字串" 鼠牛虎兔龙蛇马羊猴鸡狗猪"
       ♀ + 2
  否则   ♀ mb_ok 字串" 属象数有误" 系统对话框  ♀ 全复位
  然后
   。

编 属象数 ( 地址 长度 --- 属象数 )  
   字串" 鼠牛虎兔龙蛇马羊猴鸡狗猪"
   双↑↓ 串搜寻 -1 = 
   就    24 ↑↓ - 2 /  ↑↓♀
   否则  ↑↓♀ mb_ok 字串" 属象串不正确" 系统对话框  ♀ 全复位
   然后
   。

 

编 夏历月名
   取整数  ♂ 1 13 >=且< 
   就    字串" 一月二月三月四月五月六月七月八月九月十月冬月腊月" 
         ♀   ↑↓ 1- 4 * + 4    
  否则  ♀ mb_ok  字串" 夏历月序错误"  系统对话框 ♀ 全复位
  然后
  。

编 夏历日名
  取整数  ♂ 1 31 >=且< 
   就    字串" 初一初二初三初四初五初六初七初八初九初十十一十二十三十四十五十六十七十八十九二十廿一廿二廿三廿四廿五廿六廿七廿八廿九三十" 
         ♀ ↑↓ 1- 4 * + 4    
  否则  ♀ mb_ok  字串" 夏历月序错误"  系统对话框 ♀ 全复位
  然后
  。

编 星期串   ( 星期值 --- 星期串 )
  星期  字串" 星期日星期一星期二星期三星期四星期五星期六"
  ♀  ↑↓  6 * +  6
  。

 


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


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

\ ******************************
\ *西历日期与夏历日期的转换
\ ******************************


编 闰年否   ( 年 --- 真|假 )
  ♂  4   求余数 0=
  ∽  100 求余数 0<>  与
 ↑↓ 400 求余数 0=   或
  。

编 置二月天数   ( 年 ---  )
  闰年否
  就    29 月中包含日期 2 + 字节写
  否则    28 月中包含日期 2 + 字节写
  然后
  。
 

200 个32位给数组  夏历信息

编 输入夏历信息
  { \ 地址 序号 -- }  1500 动态内存分配 写入 地址  0 写入 序号
字串" 0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2," 地址 长串首传
字串" 0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977," 地址 长串续传
字串" 0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970," 地址 长串续传
字串" 0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950," 地址 长串续传
字串" 0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557," 地址 长串续传
字串" 0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0," 地址 长串续传
字串" 0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0," 地址 长串续传
字串" 0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6," 地址 长串续传
字串" 0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570," 地址 长串续传
字串" 0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0," 地址 长串续传
字串" 0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5," 地址 长串续传
字串" 0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930," 地址 长串续传
字串" 0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530," 地址 长串续传
字串" 0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45," 地址 长串续传
字串" 0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0"  地址 长串续传
地址 计长串 ♂  0>
就    ∽  7 字串解释 序号 写入32位数组  夏历信息  1 +写入 序号
      环首   ',' 同字符定位  ♂  0<>
      就继续  ↑↓ 1+  ↑↓ 1-   ∽  7 字串解释 序号 写入32位数组  夏历信息  1 +写入 序号
      重复
否则  mb_ok 字串" 数据为空" 系统对话框 ♀ 
然后  双♀ 地址 有纠错释放内存

    
输入夏历信息

编 查看数组内容
    回车 150 0
    ?循环 内环数 夏历信息 十六进制 显 空格 内环数 1+ 10 求余数 0= 就 回车 然后
    回环
    。

编 选择   ( n1 n2 真|假 --- n1|n2 )
   就    ♀
   否则  ↑↓♀
   然后
   。

编 年>日   ( 年数 --- 天数 )
  ♂  365  *       
  ∽  4    /  +
  ∽  100  /  -
 ↑↓ 400  /  + 
  。


编 取相差天数    ( 日期值 --- 距1900年的天数 )
   计年月日
   ♂ 1- 年>日 1899 年>日 -
   3  √ 3  √ 3  √
   置二月天数
   月日日期值  +
   。

 

编 月天数     ( 年 月 --- 天数 )
   ↑↓ 置二月天数
    月中包含日期 + 字节读
    。


编 日期算法2     ( 年 月 日 --- )
    ∽ 3 <     \  日+1+2*月+3*(月+1)/5+年+年/4-年/100+年/400
    就    ↑↓  12 +   ↑↓   ∴ 1-  ∵
    然后  1+   ∽  2 * + ↑↓  1+ 3 * 5 / +
         ∽ +  ∽ 4 / +  ∽ 100 / -  ↑↓  400 / +
          7 求余数
    。 


编 夏历月天数   ( 夏历年 夏历月 --- 天数 )
   ↑↓ 1900 - 夏历信息 0x10000  ∴ 右移位 与
   30 29   ∴  选择
  。

编 夏历闰月   ( 夏历年 --- 闰月 )
   1900 - 夏历信息  0xf  与
   。

编 夏历闰月天数   ( 夏历年份 --- 天数 )
   ♂  夏历闰月 0<>
   就  1900 - 夏历信息  0x10000  与
       30 29   ∴  选择
   否则 ♀ 0
   然后
   。
  

编 夏历年天数   ( 夏历年份 --- 天数 )
    0x8000   
    348
    环首   2 §   1900 - 夏历信息 2 §  与 1 0  ∴ 选择 +
          ↑↓   1 右移位   ↑↓  ∽   0x8 <=
    就出来  ∴  夏历闰月天数  +  ↑↓♀
    。

编 夏历年天数1
   0
   13 1
   ?循环  ∽  内环数 夏历月天数 +
   回环  ↑↓ 夏历闰月天数 +
   。

编 夏历日期  ( 西历日期值 --- 年 月 日 是否闰月 )
   {  \ 历年 历月 历日  闰月 历月天数 是闰月 -- }
   0    写入 闰月
   0    写入 历月天数 
   1900 写入 历年
   取相差天数  30 - 
   环首   历年 夏历年天数  - 
         1 +写入 历年
         ♂  0 <=  历年 2050 > 或
   就出来 
   ♂  0<
   就     -1 +写入 历年
         历年 夏历年天数 +  写入 历日
   然后  
   历年 夏历闰月  写入  闰月
   假 写入  是闰月
   1  写入  历月
   环首   闰月 0>
         历月 闰月 1+ =  与
         是闰月  假 =    与
         就    -1 +写入 历月  
               真  写入  是闰月
              历年    夏历闰月天数   写入  历月天数
        否则   历年 历月 夏历月天数   写入  历月天数
              历月 闰月 1+ =  是闰月    与
              就    假  写入  是闰月
              然后
        然后   历日 历月天数 - 写入 历日
        1 +写入 历月
        历日 0 <=  历月 13 >= 或
   就出来
   历日 0= 
   闰月 0>  与
   闰月 1+ 历月 = 与
   就     -1 +写入 历月
          是闰月
          就    假  写入  是闰月
          否则   真  写入  是闰月
          然后
   然后  历日 0 <=
   就    历日 历月天数 +  写入 历日
         -1 +写入 历月
   然后
   历年 历月 历日 是闰月
   。
   

编 夏历日期串  ( 夏历日期 --- 夏历日期串 )
   { \ 夏历串 -- }
    255 个字节空给 夏历串
    字串" 夏历 "  夏历串  字串传送
    双↑↓  ↑↓ 4 - 60 求余数
    ♂ 10 求余数  ∽ 12 求余数
    干支串           夏历串  字串+传送
    字串" 年"        夏历串  字串+传送
    字串"  【"       夏历串  字串+传送
    12  求余数 属象串  夏历串  字串+传送
    字串" 】"        夏历串  字串+传送
    ↑↓
     就   字串" 闰"   夏历串  字串+传送
     然后  夏历月名    夏历串  字串+传送
          夏历日名    夏历串  字串+传送
     字串" 日"       夏历串  字串+传送
     夏历串 计字节
     。


 


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


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

使用示例:

 

20 10 2010 日期值 看数摞 [1] 734065 ★.
夏历日期 看数摞 [4] 2010 9 13 0 ★....
夏历日期串 看数摞 [2] -8389299 28 ★..
印字串 夏历 庚寅年 【虎】九月十三日★


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


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

示例解释:

 

20 10 2010 日期值 看数摞 [1] 734065 ★.       \ 20 10 2010   是西历日期,以日月年的形式缎给出参数,用日期值这个词来计算2010年10月20日距离西历元年元月1日的天数,即西历日期值。
夏历日期 看数摞 [4] 2010 9 13 0 ★....           \  用 夏历日期  这个词来将前面的西历日期值转换成夏历日期,以夏历年、月、日、是否闰月 的形式来表示返回的夏历日期。
夏历日期串 看数摞 [2] -8389299 28 ★..        \ 用 夏历日期串 这个词 将以夏历年、月、日、是否闰月 的形式来表示的夏历日期转换成适合输出显示的字符串,以字符串首地址、字符串长度的形式表示。
印字串 夏历 庚寅年 【虎】九月十三日★           \  通过印字串这个词将前面的字符串显示出来。


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


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

从空白开始学汉语编程
http://www.haanen.com.cn/bbs/dispbbs.asp?boardID=131&ID=73552&page=1

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


加好友 发短信
等级:论坛游民 帖子:89 积分:1001 威望:0 精华:0 注册:2009/2/22 21:16:00
  发帖心情 Post By:2010/10/20 21:28:00

最出名的汉语编程应该是“易语言”吧?
我进http://www.haanen.com.cn/bbs/dispbbs.asp?boardID=131&ID=73552&page=1云看一下。

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


加好友 发短信
等级:版主 帖子:917 积分:7587 威望:10 精华:1 注册:2005/3/17 11:37:00
  发帖心情 Post By:2010/10/21 8:29:00

谢谢楼主提供源码,辛苦了。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 13 1 2 下一页

返回版面帖子列表

[原创]夏历与西历日期转换(汉语编程源码)








签名