0
我正在尋找一種方法來查找前一個日曆星期一的日期對象。例如,今天是2016年1月15日;我需要建立一個函數,將返回'2016-01-04 UTC'找到前一個星期一
我正在尋找一種方法來查找前一個日曆星期一的日期對象。例如,今天是2016年1月15日;我需要建立一個函數,將返回'2016-01-04 UTC'找到前一個星期一
該問題要求「前一個日曆周的星期一」。我們在下面假設這意味着您希望在輸入日期或之前的週一。
請注意,使用"Date"
類會更好,因爲不需要時間,而"Date"
類沒有時區,因此它避免了與"POSIXt"
類相關的潛在時區錯誤。
動物園小插曲中有nextfri
函數,我們可以使用它作爲類似函數的基礎。 (1)ceiling
替換爲floor
,(2)5(星期五)替換爲1(星期一)和(3)我們添加origin=
變元to as.Date
- 如果加載了動物園,則會提供缺省原點,因此可以選擇省略參數origin=
。
該函數僅使用基R,並且被矢量化。它接受"Date"
類向量,並在相應輸入日期或之前返回一個"Date"
類的星期一向量。
lastmon <- function(x) 7 * floor(as.numeric(x-1+4)/7) + as.Date(1-4, origin="1970-01-01")
例如,
> lastmon(as.Date(c("2016-01-15", "2016-01-11")))
[1] "2016-01-11" "2016-01-11"
的lastmon
功能可以交替地簡化爲:
lastmon2 <- function(x) x - as.numeric(x-1+4)%%7
聽起來像一個很酷的功能。你有什麼? – rawr
http://stackoverflow.com/questions/28971638/r-obtaining-last-fridays-date – hrbrmstr
'PrevMon < - function(x){
Chris