中华农历论坛知识讨论区历法知识 → 回复帖子

  回复帖子
用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
高级设置: 签名: 回帖通知:
 

主题最新回顾(发布时间:2011/3/9 17:00:00)
--  作者:水生活
--  
谢谢楼主分享呵,顶上

主题最新回顾(发布时间:2011/3/3 20:24:00)
--  作者:秦汉昌
--  

汉语编程开发工具及教程下载地址

 

  

点击如上蓝色字或者将下面的地址

         http://u.115.com/file/f544902b86#
复制到浏览器,可以下载  汉语编程.rar

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

主题最新回顾(发布时间:2010/11/5 15:31:00)
--  作者:esailor
--  
楼主辛苦了!

主题最新回顾(发布时间:2010/10/21 8:29:00)
--  作者:春光
--  
谢谢楼主提供源码,辛苦了。

主题最新回顾(发布时间:2010/10/20 21:28:00)
--  作者:linkerson
--  
最出名的汉语编程应该是“易语言”吧?
我进http://www.haanen.com.cn/bbs/dispbbs.asp?boardID=131&ID=73552&page=1云看一下。

主题最新回顾(发布时间:2010/10/20 15:17:00)
--  作者:秦汉昌
--  
从空白开始学汉语编程
http://www.haanen.com.cn/bbs/dispbbs.asp?boardID=131&ID=73552&page=1

主题最新回顾(发布时间: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 ★..        \ 用 夏历日期串 这个词 将以夏历年、月、日、是否闰月 的形式来表示的夏历日期转换成适合输出显示的字符串,以字符串首地址、字符串长度的形式表示。
印字串 夏历 庚寅年 【虎】九月十三日★           \  通过印字串这个词将前面的字符串显示出来。


主题最新回顾(发布时间:2010/10/20 13:23:00)
--  作者:秦汉昌
--  

使用示例:

 

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


主题最新回顾(发布时间: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  求余数 属象串  夏历串  字串+传送
    字串" 】"        夏历串  字串+传送
    ↑↓
     就   字串" 闰"   夏历串  字串+传送
     然后  夏历月名    夏历串  字串+传送
          夏历日名    夏历串  字串+传送
     字串" 日"       夏历串  字串+传送
     夏历串 计字节
     。


 


主题最新回顾(发布时间: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
  。