找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7345|回复: 4

[脚本] 日期转星期脚本(不要钱的)

[复制链接]
发表于 2012-1-27 20:35:08 | 显示全部楼层 |阅读模式

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

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

×
听说群里已经有这个功能的脚本了,我觉得也未必和我写的一样,就发下。


##根据 蔡勒(Zeller)公式计算
##定义和初始化各种变量
:global startNum
:global wNum 8

:global StrWeek "\C8\D5\D2\BB\B6\FE\C8\FD\CB\C4\CE\E5\C1\F9"
:global StrWeekPre "\BD\F1\CC\EC\CA\C7\A3\BA   \D0\C7\C6\DA"
:global StrMonth "janfebmaraprmayjunjulaugsepoctnovdec"

:global c [:pick [:system clock get date] 7 9]
:global y [:pick [:system clock get date] 9 11]
:global m [:pick [:system clock get date] 0 3]
:global d [:pick [:system clock get date] 4 6]
:global w 10
###转码到符合日期计算公式的条件中
:for i from=1 to=12 do={
   :if ([:pick $StrMonth ($i * 3 - 3) ($i * 3)] = $m) do={
      :set m $i
      :if (($m = 1) || ($m = 2)) do={
          :set m ($m + 12)
          :set y ($y - 1)
      }
   }
}
####计算
#计算公式值(把取得的变量代入蔡勒(Zeller)公式)
:set w ($y + ($y / 4)+($c / 4) - 2 * $c + (26 * ($m + 1)) / 10 + ($d - 1 ))

#由于未发现ros有取余运算符,采用加一相除法取余数
:set startNum ($w / 7)
:for i from=1 to=7 do={      
     :if ((($w + $i) / 7) - $startNum=1) do={
         :if ($wNum = 8) do={
         :set wNum (7 - $i)
         }
     }
}
###将数字编码的星期表示转换成汉字 ,并写到日志里。
:log info message=($StrWeekPre . [:pick $StrWeek ($wNum * 2 ) ($wNum * 2 + 2)])
routeros
发表于 2012-1-29 20:35:08 | 显示全部楼层
楼主好会折腾~
routeros
回复

使用道具 举报

 楼主| 发表于 2012-1-29 21:26:50 | 显示全部楼层
楼上经典
其实已经很难有时间去理解这么长的文章。
routeros
回复

使用道具 举报

发表于 2015-5-9 15:38:10 | 显示全部楼层
好评  点赞...
routeros
回复

使用道具 举报

发表于 2015-5-10 06:37:14 | 显示全部楼层
拿出来分享,不让报酬,真是好人啊,这年头这样无私的人,不多见啦,赞一个!
routeros
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-22 23:38 , Processed in 0.044818 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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