明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3021|回复: 18

[源码] 分享一个获取网络时间的源码

[复制链接]
发表于 2023-5-12 13:41:45 | 显示全部楼层 |阅读模式
本帖最后由 baitang36 于 2023-5-12 16:34 编辑

从一个软件中挖出来的,可能是lee-mac写的。
用法:(NETTIME "yymodd")
(NETTIME "yymoddhhmmss")
返回的时间是UTC时间,北京时间需要加8小时。

(NETTIME "yyyymodd")
"20230512"


(DEFUN JTOY (J / A B C D)
  (setq J (FIX J))
  (setq A (FIX (/ (- J 1867216.25) 36524.25)))
  (setq B (+ (- (+ J 1 A) (FIX (/ A 4))) 1524))
  (setq C (FIX (/ (- B 122.1) 365.25)))
  (setq D (FIX (/ (- B (FIX (* 365.25 C))) 30.6001)))
  (FIX (- C
          (if (< 2
                 (FIX (if (< D 14)
                        (PROGN (1- D))
                        (PROGN (- D 13))
                      ) ;_ if
                 ) ;_ FIX
              ) ;_ <
            (PROGN 4716)
            (PROGN 4715)
          ) ;_ if
       ) ;_ -
  ) ;_ FIX
) ;_ DEFUN
(DEFUN NETTIME (FORMAT / RESULT RGX SERVER XML)
  (setq SERVER "http://time.nist.gov:13")
  (setq        RESULT
         (VL-CATCH-ALL-APPLY
           '(lambda (/ STR)
              (setq XML (vlax-create-object "MSXML2.XMLHTTP.3.0"))
              (setq RGX (vlax-create-object "vbscript.regexp"))
              (vlax-invoke-method XML 'OPEN "POST" SERVER :vlax-false)
              (vlax-invoke-method XML 'SEND)
              (if (setq STR (vlax-get-property XML 'RESPONSETEXT))
                (PROGN
                  (vlax-put-property RGX 'GLOBAL acTrue)
                  (vlax-put-property RGX 'IGNORECASE acTrue)
                  (vlax-put-property RGX 'MULTILINE acTrue)
                  (setq        STR
                         (STRCAT
                           " "
                           (ITOA
                             (JTOY (+ (ATOI (SUBSTR STR 2 5)) 2400000.5)
                             ) ;_ JTOY
                           ) ;_ ITOA
                           (SUBSTR STR 7)
                         ) ;_ STRCAT
                  ) ;_ setq
                  (MAPCAR '(lambda (A B)
                             (vlax-put-property RGX 'PATTERN A)
                             (setq
                               FORMAT (vlax-invoke RGX 'REPLACE FORMAT B)
                             ) ;_ setq
                           ) ;_ lambda
                          '("YYYY" "YY" "MO" "DD" "HH" "MM" "SS")
                          '("$1" "$2" "$3" "$4" "$5" "$6" "$7")
                  ) ;_ MAPCAR
                  (vlax-put-property
                    RGX
                    'PATTERN
                    (STRCAT "(?:[^\\d]+)([\\d]+)(?:[^\\d]+)([\\d]+)"
                            "(?:[^\\d]+)([\\d]+)(?:[^\\d]+)([\\d]+)"
                            "(?:[^\\d]+)([\\d]+)(?:[^\\d]+)([\\d]+)"
                            "(?:[^\\d]+)([\\d]+)(?:.+)\\n"
                    ) ;_ STRCAT
                  ) ;_ vlax-put-property
                  (vlax-invoke-method RGX 'REPLACE STR FORMAT)
                ) ;_ PROGN
              ) ;_ if
            ) ;_ lambda
         ) ;_ VL-CATCH-ALL-APPLY
  ) ;_ setq
  (if XML
    (PROGN (vlax-release-object XML))
  ) ;_ if
  (if RGX
    (PROGN (vlax-release-object RGX))
  ) ;_ if
  (if (VL-CATCH-ALL-ERROR-P RESULT)
    (PROGN (PROMPT (VL-CATCH-ALL-ERROR-MESSAGE RESULT)))
    (PROGN RESULT)
  ) ;_ if
) ;_ DEFUN





点评

谢谢哥的分享!  发表于 2023-5-12 14:09
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2023-5-12 16:33:05 | 显示全部楼层
罗尼 发表于 2023-5-12 16:09
命令: (NETTIME "yymodd")
Automation 错误。 指定资源下载失败。
nil

windows的对时就是用的这个服务器  http://time.nist.gov
回复 支持 1 反对 0

使用道具 举报

发表于 2023-5-15 08:16:36 | 显示全部楼层
本帖最后由 cchessbd 于 2023-5-15 08:18 编辑

哦,原来老师早就写过了。。。
我下载是论坛另一位发布的源码,我再研究下您的。您这个win7也可以获取。
之前我修改的部分是,应对没有网络(或网卡被禁用)的情况。
发表于 2023-5-15 13:28:53 | 显示全部楼层
baitang36 发表于 2023-5-15 08:06
http://bbs.mjtd.com/thread-186195-1-1.html

经过测试,这个版本没有需要curl的好。估计采用curl的原因就是每次运行都能实时获取文件。

这个版本在time1.htm文件没有的情况下就出错了。
发表于 2023-5-12 16:09:08 | 显示全部楼层
命令: (NETTIME "yymodd")
Automation 错误。 指定资源下载失败。
nil
发表于 2023-5-12 16:25:59 | 显示全部楼层
少了一个函数:no function definition: JTOY
 楼主| 发表于 2023-5-12 16:31:53 | 显示全部楼层
ssyfeng 发表于 2023-5-12 16:25
少了一个函数:no function definition: JTOY

加上了,多谢提醒。
发表于 2023-5-13 00:57:58 | 显示全部楼层
谢谢分享  很实用
发表于 2023-5-13 07:28:46 | 显示全部楼层
这个不稳定,有时候能获取到,有时候是nil。
而且速度很慢。等我有时间来研究研究。
发表于 2023-5-13 13:55:44 | 显示全部楼层
cchessbd 发表于 2023-5-13 07:28
这个不稳定,有时候能获取到,有时候是nil。
而且速度很慢。等我有时间来研究研究。

兄弟,等你哈
发表于 2023-5-15 07:42:12 | 显示全部楼层
本帖最后由 cchessbd 于 2023-5-15 07:46 编辑


刚刚在win7下测试,获取不到,可能只有win10才能运行。。。

目前速度最快的,获取网络时间源码。取之于明,用之于明。

本人稍微修改了下,CAD2008测试多次都没问题。


本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-25 21:41 , Processed in 0.229237 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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