2012-08-16 50 views

回答

10

下面是一些信息來創建自己的庫或例行

常量:

DAY_OF_MONTH

the day of the month 
    e.g. if input mm-dd-yyy then dd 

march = 1 
april = 2 
may = 3 
... 

yy[yy] (last to digits from yyyy) 
    *subtract 1 if month jan or feb 
    e.g. if input date is 02-01-2012 (mm-dd-yyyy) 
     year = (12-1) = 11 

世紀

[yy]yy (first two digits from yyyy) 
    e.g. if input year is 2012 then 20 = century 
    * year 2000, 1900, ... are 20-1, 19-1 respectively 

算法

step1: floor(century/4) 

step2: year 

step3: floor(year/4) 

step4: floor(month*2.6 -0.2) #this is the leap year correction 

step5: day_of_month 

step6: add step1...step5 

step7: divide by 7 # modulo 7 in codespeak 

step8: the remainder is the day of the week 

個解讀其結果:

Sun = 0, Mon = 1, Tues = 3, etc.. 

不是圖書館,而是作爲公共服務叮噹去...

「讀:知道得越多」

編號:http://bit.ly/PqF0M0

+0

非常感謝你,夥計們! – Ikuyasu 2012-08-17 03:49:29

58
weekdays(as.Date('16-08-2012','%d-%m-%Y')) 
[1] "Thursday" 
+2

我總是忘了'平日()'是基礎R. +1 – A5C1D2H2I1M1N2O1R2T1 2012-08-16 11:14:40

15

lubridate包非常適合這類東西。

> wday(as.Date('16-08-2012','%d-%m-%Y')) 
[1] 5 
> wday(as.Date('16-08-2012','%d-%m-%Y'), label=TRUE) 
[1] Thurs 
Levels: Sun < Mon < Tues < Wed < Thurs < Fri < Sat 
> wday(as.Date('16-08-2012','%d-%m-%Y'), label=TRUE, abbr = FALSE) 
[1] Thursday 
Levels: Sunday < Monday < Tuesday < Wednesday < Thursday < Friday < Saturday