n秒后是哪一年?
您將獲得一個整數(shù)n作為輸入,并且無論當(dāng)前日期如何,必須返回從現(xiàn)在起n秒后發(fā)生的日歷年(公歷,不允許使用其他日歷)。規(guī)則您不能假定當(dāng)前年份是2021年。換句話
解答動態(tài)
PHP獲取年份,27 bytes quo;quo;quo;quo;
聯(lián)機試用或僅在自定義指定的開始日期試用。(對于大的輸入來說相當(dāng)慢,所以不能輸出當(dāng)前日期的大測試用例)夷平面:
05AB1E沒有任何日期內(nèi)置(除了當(dāng)前日期/時間),我以前手動計算過。我用了我這個答案的第二天代碼,它反過來也用了這個答案的閏年計算我的。從那以后這個挑戰(zhàn)也要求回到過去,為了支持這一點,我對程序進(jìn)行了相應(yīng)的修改。
步驟1:創(chuàng)建一個函數(shù)來計算給定年份中一個月的天數(shù)/月份:
lt;7%?31α}lt;#將月份減少17%#模-7é#模-2 31α#與31的絕對差}#關(guān)閉if else語句第2步:現(xiàn)在我們確定當(dāng)前日期,循環(huán)次數(shù)取決于輸入:
?e?推送當(dāng)前日期?f?推送當(dāng)前月份?g?推送當(dāng)前年份)?將所有三者都包裝到一個列表中I?推送輸入整數(shù)??+#按壓縮整數(shù)42300·#將其加倍到84600(60*60*24)÷#整數(shù)將輸入除以84600?#取其絕對值F#并循環(huán)次數(shù): 3:如果輸入為正,則計算下一個 日期:
?#將當(dāng)前日期存儲在變量`?`(不彈出)Idi#中,如果輸入為非負(fù):Y.V#執(zhí)行字符串“Y”作為05AB1E代碼,以獲取當(dāng)前月/年的天數(shù)#i#如果小于當(dāng)前日期:?#再次推送當(dāng)前日期#獲取其第一項(日期)gt;?增加該月11?推索引1?否則:\?丟棄復(fù)制的月1#推月=1 D#推索引1?在索引1處插入月=1到日期#推最后一項(年份)lt;#將[year]減少1 D#復(fù)制它#檢查它是否等于0(如果為10;否則為0)—#減去(因此我們從第1年到-1年)12?31?準(zhǔn)備12和31:[31,12,第1年-(第1年==0)]?否則:?lt;?將day-1添加到[month-1,year]列表中,year]list 步驟5:在循環(huán)之后,提取要輸出:
]#關(guān)閉if-else并循環(huán)θ#彈出日期,只留下它的最后一項(年份)#(之后它被隱式輸出) 參見我的05AB1E技巧(如何壓縮大整數(shù)一節(jié)?)要理解為什么?a+是42300.
Bash,16字節(jié) date-d$1秒+%y 請在線試用!
credits由于@mannetworkJavaScript(ES6)節(jié)省了12個字節(jié),42個字節(jié) n=>;新日期(+new Date+n*1e3)。getFullYear() 在線試用!
倍頻程/MATLAB,27 bytes @(x)datestr(x/86400+now,10) 在線試用!
它的工作方式 @(x)%Define匿名函數(shù),輸入x x/86400%除以86400%輸入,現(xiàn)在轉(zhuǎn)換為天%Current time in days sincequot;+%Add datestr(,10)%convert to string with format 10,也就是年份jq,20個15字符1現(xiàn)在+。
gmtime[0] Sample運行:
bash-5.0$jq'now+。gmtime[0]'lt;<;100000000005190 在線試用!
PowerShell,32 26 23 bytes date
%*dds*@args
%y* 在線試用!
-3字節(jié)感謝mazzy和ZaelinGoodman
Japt,12 10 bytes DKj+Ue3)i Try it
-2字節(jié)來自AZTECCO.
這個傳輸?shù)揭韵翵S:
new Date(K.j()+U*1e3).i() 其中K.j()是轉(zhuǎn)換為毫秒的當(dāng)前時間,U是輸入,.i()從日期構(gòu)造函數(shù)獲取年份.
Ruby,21 bytes -gt;n{(時間到了,F(xiàn)在+n) .year}.
IBM/Lotus Notes公式語言,34 32字節(jié)1@年(@Adjust(@Now;0;0;0;0;i)) 從名為i的字段獲取輸入。不幸的是,公式僅支持32位有符號整數(shù),因此它的最大輸入為+/-2147483,公式中沒有TIO,所以這里有幾個sc重新拍攝:
Python 3,74 72 65 bytes lambda x:(日期:今天()+timedelta(0,x)).yearfrom datetime導(dǎo)入* 聯(lián)機試用!
-7字節(jié)得益于@Eric
GNU coreutils(16字節(jié)) date+%Y-d$1sec 節(jié)省了4字節(jié),得益于@ovs.
APL(Dyalog Unicode),20 bytes 完整程序,從stdin.
??20?1?DT?+20?DT'J' 20?DT'J'?獲取當(dāng)前本地*(Juliett)日期時間作為UNIX時間(代碼20;從1970年開始的秒)
?+?提示輸入n并使用它來增加UNIX時間。
20?1?解釋為UNIX時間(代碼20)并轉(zhuǎn)換為時間戳數(shù)組(代碼-1)
??提取第一個(也是唯一的)時間戳
?提取第一個元素(年份)
Try APL。ǖ谝粋和最后一個案例縮小了10倍,以避免達(dá)到日期時間,從0001年1月1日到4000年2月28日;為了方便使用而變成函數(shù))
*也可能有'- End
免責(zé)聲明:
本頁內(nèi)容僅代表作者本人意見,若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無關(guān)。本頁內(nèi)容僅供參考,請您根據(jù)自身實際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項,請咨詢專業(yè)人士處理。