{ #routeros > 7.10 #修改自https://bbs.routerclub.com/ mxso #www.routeros.cn 20230629 :local Date [/system clock get date]; :local Year ([:pick $Date 0 4]-1) :local Month ([:pick $Date 5 7]-1) :local Day ([:pick $Date 8 10]-1); :local leapyear 0,31,59,90,120,151,181,212,243,273,304,334,0,31,60,91,121,152,182,213,244,274,305,335 :global Today ($Year*365+$Year/4);:if (($Year-$Year/4*4) != 3) do={:set Today ($Today+[:pick $leapyear $Month]+$Day)} else={:set Today ($Today+[:pick $leapyear ($Month+12)]+$Day)} :global Week ($Today-$Today/7*7) :put ($Date. " is on a " .$Week) } { #routeros < 7.9 #修改自https://bbs.routerclub.com/ mxso #www.routeros.cn 20230629 :local Date [/system clock get date]; :local Year ([:pick $Date 7 11]-1) :local Month ([:find jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec [:pick $Date 0 3]]) :local Day [:pick $Date 4 6];:if ([:pick $Date 4 5] = 0) do={:set Day [:pick $Date 5 6]};:set Day ($Day-1) :local leapyear 0,31,59,90,120,151,181,212,243,273,304,334,0,31,60,91,121,152,182,213,244,274,305,335 :global Today ($Year*365+$Year/4);:if (($Year-$Year/4*4) != 3) do={:set Today ($Today+[:pick $leapyear $Month]+$Day)} else={:set Today ($Today+[:pick $leapyear ($Month+12)]+$Day)} :global Week ($Today-$Today/7*7) :put ($Date. " is on a " .$Week) } ###兼容新老版本 { :local date [/system clock get date]; :local year; :local month; :local day; :local monthList {"jan"=1;"feb"=2;"mar"=3;"apr"=4;"may"=5;"jun"=6;"jul"=7;"aug"=8;"sep"=9;"oct"=10;"nov"=11;"dec"=12}; # 检查第5个字符是否为 '-' (例如 2023-06-29) :if ([:pick $date 4 5] = "-") do={ :set year [:tonum [:pick $date 0 4]]; :set month [:tonum [:pick $date 5 7]]; :set day [:tonum [:pick $date 8 10]]; } else={ # 否则按旧格式处理 (例如 jan/01/1970) :local mStr [:pick $date 0 3]; :set month ($monthList->$mStr); :set day [:tonum [:pick $date 4 6]]; :set year [:tonum [:pick $date 7 11]]; } # --- 蔡勒公式/基姆拉尔森优化计算 --- :local y $year; :local m $month; :if ($m < 3) do={ :set m ($m + 12); :set y ($y - 1); } # 计算结果 w: 0=周一, 1=周二 ... 5=周六, 6=周日 :local w (($day + 2*$m + 3*($m+1)/5 + $y + $y/4 - $y/100 + $y/400) % 7); :local weekNames {"1";"2";"3";"4";"5";"6";"7"}; :put ("日期: " . $date . " 星期: " . ($weekNames->$w)); }