找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3886|回复: 8

[试用]:cmdla0,cmdla1,princ-used-time(请XYP版主看看)

[复制链接]

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-11-15 17:06:29 | 显示全部楼层 |阅读模式

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

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

×
以下面三个函数与XYP版主的CMDLA0,CMDLA1,PRINC-USED-TIME作用是否相同.

[php](defun begintime ( )
  (setq t1 (* 86400 (getvar "tdusrtimer")))
)
(defun endtime (  )
  (setq t2 (* 86400 (getvar "tdusrtimer")))
)
(defun time12 ( / dtime)
  (setq dtime (abs (- t2 t1)))
  (setq h (rtos (/ dtime 3600) 2 0)
        m (rtos (/ (rem dtime 3600) 60) 2 0)
        s (rtos (rem (rem dtime 3600) 60) 2 2)
  )
  (princ (strcat "\n用时 : " h " 小时" m " 分" s " 秒"))
)[/php]

不同,刚查了XYP版主函数说明,cmdla0/1是关于系统变量的东东.
真搞不明白为什么(PRINC-USED-TIME)放在程序末尾能求出程序运行时间.

再研究,原来要配合(set-start-time)使用.
看来(set-start-time)
就是
(defun set-start-time ( )
  (setq t1 (* 86400 (getvar "tdusrtimer")))
)


(PRINC-USED-TIME)就是

[php]((defun PRINC-USED-TIME ( / dtime)
(setq t2 (* 86400 (getvar "tdusrtimer")))

  (setq dtime (abs (- t2 t1)))
  (setq h (rtos (/ dtime 3600) 2 0)
        m (rtos (/ (rem dtime 3600) 60) 2 0)
        s (rtos (rem (rem dtime 3600) 60) 2 2)
  )
  (princ (strcat "\n用时 : " h " 小时" m " 分" s " 秒"))
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-15 22:31:28 | 显示全部楼层
意思差不多,但更“精制”。
标准格式
  1. [FONT=courier new]
  2. (defun c:test ()
  3.   (CMDLA0)
  4.   (set-start-time)
  5.   (command "delay" 5000)
  6.   ;;……
  7.   (princ-used-time)
  8.   (CMDLA1)
  9. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-11-15 22:43:02 | 显示全部楼层
最初由 xyp1964 发布
[B]意思差不多,但更“精制”。
标准格式
  1. [FONT=courier new]
  2. (defun c:test ()
  3.   (CMDLA0)
  4.   (set-start-time)
  5.   (command "delay" 5000)
  6.   ;;……
  7.   (princ-used-time)
  8.   (CMDLA1)
  9. )[/FONT]
[/B]


版主,将您的(set-start-time)和(princ-used-time)公开吧!真的想知道.好奇啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-15 23:44:03 | 显示全部楼层
其实很简单
  1. [FONT=courier new];;;计时开始
  2. (defun SET-START-TIME ()
  3.   (setq start-time (substr (rtos (getvar "cdate") 2 16) 7))
  4. )

  5. ;;;计时结束,并显示用时(配合set-start-time使用)
  6. (defun PRINC-USED-TIME (/ end-time t1 t2 ts day hour mint sec)
  7.   (if start-time
  8.     (progn
  9.       (setq end-time (substr (rtos (getvar "cdate") 2 16) 7)
  10.             t1             (+        (* (distof (substr start-time 1 2)) 24 60 60)
  11.                         (* (distof (substr start-time 4 2)) 60 60)
  12.                         (* (distof (substr start-time 6 2)) 60)
  13.                         (* (distof (substr start-time 8 2)) 1)
  14.                         (/ (distof (substr start-time 10 2)) 100.00)
  15.                      )
  16.             t2             (+        (* (distof (substr end-time 1 2)) 24 60 60)
  17.                         (* (distof (substr end-time 4 2)) 60 60)
  18.                         (* (distof (substr end-time 6 2)) 60)
  19.                         (* (distof (substr end-time 8 2)) 1)
  20.                         (/ (distof (substr end-time 10 2)) 100.00)
  21.                      )
  22.             ts             (- t2 t1)
  23.             day             (rtos (fix (/ ts 86400.0)) 2 0) ;天
  24.             ts             (rem ts 86400)
  25.             hour     (rtos (fix (/ ts 3600.0)) 2 0) ;小时
  26.             ts             (rem ts 3600)
  27.             mint     (rtos (fix (/ ts 60.0)) 2 0) ;分
  28.             ts             (rem ts 60)
  29.             sec             (rtos ts 2 2)        ;秒
  30.       )
  31.       (if (> (distof day) 0)
  32.         (princ
  33.           (strcat "\n用时 : " day "天" hour "小时" mint "分" sec "秒")
  34.         )
  35.         (if (> (distof hour) 0)
  36.           (princ (strcat "\n用时 : " hour "小时" mint "分" sec "秒"))
  37.           (if (> (distof mint) 0)
  38.             (princ (strcat "\n用时 : " mint "分" sec "秒"))
  39.             (princ (strcat "\n用时 : " sec "秒"))
  40.           )
  41.         )
  42.       )
  43.     )
  44.   )
  45.   (princ)
  46. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-16 02:32:41 | 显示全部楼层

  1. ;; (xtime)(xruntime) = 程序运行时间计算v1.1--by 狂刀.2005.10
  2. (defun xtime ()
  3.   (setq *xtime(getvar "cdate"))
  4. )
  5. ;;
  6. (defun xruntime(/ tm do)
  7.   (if *xtime
  8.     (progn
  9.       (setq tm (rtos (- (getvar "cdate") *xtime) 2 8))
  10.       (print)
  11.       (mapcar '(lambda(x y)(princ(substr tm x 2))(princ y)) '(3 5 7 9)'("时" "分" "." "秒"))
  12.     )
  13.   )(princ)
  14. )

;|
(defun c:tt ()
  (xtime)
  (repeat 100000
    (setq a 2)
  )
  (xruntime)
)
|;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-11-16 07:39:48 | 显示全部楼层
看二位写的东东,真是享受!
依葫芦画瓢:
[php](defun starttime ()
  (setq start-time (* 86400 (getvar "tdusrtimer")))
)
(defun usedtime ( / d end-time h m s ts)
  (if start-time
    (progn
      (setq end-time (* 86400 (getvar "tdusrtimer"))
            ts (- end-time start-time)
            d (rtos (fix (/ ts 86400.0)) 2 0)
            ts (rem ts 86400)
            h (rtos (fix (/ ts 3600.0)) 2 0)
            ts (rem ts 3600)
            m (rtos (fix (/ ts 60.0)) 2 0)
            ts (rem ts 60)
            s (rtos ts 2 2)             

      )
      (if (> (distof d) 0)
        (princ (strcat "\n用时 : " d "天" h "小时" m "分" s "秒"))
        (if (> (distof h) 0)
          (princ (strcat "\n用时 : " h "小时" m "分" s "秒"))
          (if (> (distof m) 0)
            (princ (strcat "\n用时 : " m "分" s "秒"))
            (princ (strcat "\n用时 : " s "秒"))
          )
        )
      )
    )
  )
  (princ)
)[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-16 11:44:46 | 显示全部楼层
利用tdusrtimer系统变量可以避免xyp_lib通用函数存在的“千年虫”问题。
马上采纳诸位意见。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

 楼主| 发表于 2005-11-16 12:01:24 | 显示全部楼层
被版主加分,爽!我要加油!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-16 14:58:39 | 显示全部楼层
我看不懂啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 01:34 , Processed in 0.427424 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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