- UID
- 675606
- 积分
- 3406
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2013-5-6
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
搜到时间转换函数,记录一下,以便下次自己用时好找
 - ;;http://bbs.mjtd.com/forum.php?mo ... &highlight=date by tengte
- ;;时间格式转化:CDate转化为Date,无效日期返回nil
- (defun CDate->Date (cdate / Round Time Diff cd dt i0 i n s)
- (defun Round (x)
- (if (>= x 0)
- (fix (+ x 0.5))
- (fix (- x 0.5))
- ) ;if
- ) ;defun
- (defun Time (dt / x h m s)
- (setq x (Round (rem (* dt 1E6) 1E6)))
- (setq h (/ x 10000)
- m (/ (rem x 10000) 100)
- s (rem x 100)
- )
- (/ (+ (* 3600 h) (* 60 m) s) 8.64E4)
- ) ;defun
- (defun Diff (cd1 cd2 / y1 y2 m1 m2 d1 d2 n)
- (cond
- ((= cd1 cd2) (setq n 0))
- ((setq y1 (/ cd1 10000)
- m1 (rem (/ cd1 100) 100)
- d1 (rem cd1 100)
- y2 (/ cd2 10000)
- m2 (rem (/ cd2 100) 100)
- d2 (rem cd2 100)
- n (Round (+ (* 366 (- y1 y2)) (* 30.5 (- m1 m2)) (- d1 d2)))
- )
- (and (= n 0) (setq n nil))
- )
- ) ;cond
- n
- ) ;defun
- (setq cd (fix cdate)
- dt -47130101
- i0 0
- n 0
- )
- (while (and (setq i (Diff cd dt)) (/= i 0) (/= 0 (+ i i0)))
- (setq n (+ n i)
- s (strcat "M=$(edtime," (itoa n) ",YYYYMODD)")
- dt (atoi (menucmd s))
- i0 i
- )
- ) ;while
- (if (or (not i) (= 0 (+ i i0)))
- (setq n nil)
- ) ;if
- (and n (setq n (+ n (Time cdate))))
- n
- )
- ;;时间格式转化:Date转化为CDate
- (defun Date->CDate (date / s)
- (setq s (strcat "M=$(edtime," (rtos date 2 8) ",YYYYMODD.HHMMSS)"))
- (atof (menucmd s))
- )
|
|