日期转星期脚本(不要钱的)
听说群里已经有这个功能的脚本了,我觉得也未必和我写的一样,就发下。##根据 蔡勒(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)])
楼主好会折腾~ 楼上经典
其实已经很难有时间去理解这么长的文章。 好评点赞... 拿出来分享,不让报酬,真是好人啊,这年头这样无私的人,不多见啦,赞一个!
页:
[1]