明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 842|回复: 3

[函数] 获取指定年份的农历天干地支年名lisp版

  [复制链接]
发表于 2016-6-20 11:17 | 显示全部楼层 |阅读模式
本帖最后由 caoliu023 于 2016-6-27 22:34 编辑

偶然在明经的vba函数中心看到某位大大写的获取指定年份的农历天干地支年名vba函数
页面地址在这里 http://www.mjtd.com/function/info-130-469.html
感觉挺有意思的,所以就把它翻译成lisp版本
  1. (defun GetCNYearName (CurYear / temp temp2 tg dz an)
  2.   (if (< CurYear 4)
  3.     (princ "输入年份不能小于4")
  4.     (progn
  5.       (setq CNYear_TG '("甲" "乙" "丙" "丁" "戊" "己" "庚" "辛" "壬" "癸"))
  6.       (setq CNYear_DZ '("子" "丑" "寅" "卯" "辰" "巳" "午" "未" "申" "酉" "戌" "亥"))
  7.       (setq CNYear_AN '("鼠" "牛" "虎" "兔" "龙" "蛇" "马" "羊" "猴" "鸡" "狗" "猪"))
  8.       (setq temp (fix(rem (- CurYear 4.0) 60 12)))
  9.       (setq temp2 (fix(rem(- CurYear 4.0) 60 10)))
  10.       (setq tg(nth temp2 CNYear_TG))
  11.       (setq dz(nth temp CNYear_DZ))
  12.       (setq an(nth temp CNYear_AN))
  13.       (princ (strcat "该年是" tg dz "("an")" "年"))
  14.     )
  15.   )
  16.   (princ)  
  17. )

评分

参与人数 1明经币 +1 收起 理由
tryhi + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2016-6-26 07:02 | 显示全部楼层
;;; CurYear  任意数值;;;
(defun GetCNYearName ( CurYear / temp1 temp2 tg dz an)
  ;;;  获取指定年份的农历天干地支年名;
  ;;;  (GetCNYearName 2016)
  ;;;  (GetCNYearName 2)
  ;;;  (GetCNYearName -58)
  (if (numberp CurYear)
    (progn
      (setq CNYear_TG (list "甲" "乙" "丙" "丁" "戊" "己" "庚" "辛" "壬" "癸"))
      (setq CNYear_DZ (list "子" "丑" "寅" "卯" "辰" "巳" "午" "未" "申" "酉" "戌" "亥"))
      (setq CNYear_AN (list "鼠" "牛" "虎" "兔" "龙" "蛇" "马" "羊" "猴" "鸡" "狗" "猪"))
      (setq temp1 (fix (rem (- CurYear 4) 60 12)))
      (setq temp2 (fix (rem (- CurYear 4) 60 10)))
      (while (< temp1 0)  (setq temp1 (+ temp1 12))  )
      (while (< temp2 0)  (setq temp2 (+ temp2 10))  )
      (setq tg (nth temp2 CNYear_TG))
      (setq dz (nth temp1 CNYear_DZ))
      (setq an (nth temp1 CNYear_AN))
      (princ (strcat "\n  该年是 " tg dz "(" an ") 年."))
    );;;progn;
  )
  (princ)
)
回复 支持 1 反对 0

使用道具 举报

发表于 2016-6-20 13:42 | 显示全部楼层
今年是丙申(猴)年
发表于 2020-2-18 16:21 | 显示全部楼层
可以再扩充一下,输入年月日时,生成八字,用于自动算命。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-1 07:26 , Processed in 0.275020 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表