找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 891|回复: 0

[时间] (XD::CDATE:DATE)时间转换

[复制链接]

已领礼包: 160个

财富等级: 日进斗金

发表于 2019-9-4 20:16:01 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::CDATE:DATE
调用格式: (XD::CDATE:DATE cdate)
参数说明: cdate--->时间
举个栗子 :cdate-->20190904
返回值: ^_^
函数简介: (XD::CDATE:DATE 20190904)
_$
;;返回
2.45873e+006
_$
函数来源: 转载
函数作者: 隔壁
适用版本: 不限 
最后更新时间: 2019-09-04
备注: -
演示图片: -

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. (defun XD::CDATE:DATE (cdate / Round Time Diff cd dt i0 i n s)
  2.   (defun Round (x)
  3.     (if        (>= x 0)
  4.       (fix (+ x 0.5))
  5.       (fix (- x 0.5))
  6.     ) ;if
  7.   ) ;defun
  8.   (defun Time (dt / x h m s)
  9.     (setq x (Round (rem (* dt 1E6) 1E6)))
  10.     (setq h (/ x 10000)
  11.           m (/ (rem x 10000) 100)
  12.           s (rem x 100)
  13.     )
  14.     (/ (+ (* 3600 h) (* 60 m) s) 8.64E4)
  15.   ) ;defun
  16. (defun Diff (cd1 cd2 / y1 y2 m1 m2 d1 d2 n)
  17.     (cond
  18.       ((= cd1 cd2) (setq n 0))
  19.       ((setq y1        (/ cd1 10000)
  20.              m1        (rem (/ cd1 100) 100)
  21.              d1        (rem cd1 100)
  22.              y2        (/ cd2 10000)
  23.              m2        (rem (/ cd2 100) 100)
  24.              d2        (rem cd2 100)
  25.              n        (Round (+ (* 366 (- y1 y2)) (* 30.5 (- m1 m2)) (- d1 d2)))
  26.        )
  27.        (and (= n 0) (setq n nil))
  28.       )
  29.     ) ;cond
  30.     n
  31.   ) ;defun
  32.   (setq        cd (fix cdate)
  33.         dt -47130101
  34.         i0 0
  35.         n  0
  36.   )
  37.   (while (and (setq i (Diff cd dt)) (/= i 0) (/= 0 (+ i i0)))
  38.     (setq n  (+ n i)
  39.           s  (strcat "M=$(edtime," (itoa n) ",YYYYMODD)")
  40.           dt (atoi (menucmd s))
  41.           i0 i
  42.     )
  43.   ) ;while
  44.   (if (or (not i) (= 0 (+ i i0)))
  45.     (setq n nil)
  46.   ) ;if
  47.   (and n (setq n (+ n (Time cdate))))
  48.   n
  49. )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-24 10:16 , Processed in 0.384834 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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