2012-08-16 15 views

Respuesta

10

Aquí hay alguna información para crear su propia biblioteca o rutina

Constantes:

DAY_OF_MONTH

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

meses:

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

años

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 

siglo

[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 

ALGORITMO

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 

interpretar los resultados:

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

una biblioteca, pero como el tintineo de servicio púbico va ...

"Leer: cuanto más se sabe"

Ref: http://bit.ly/PqF0M0

+0

Muchas gracias, muchachos! – Ikuyasu

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

Siempre olvido que 'weekdays()' está en la base R. +1 – A5C1D2H2I1M1N2O1R2T1

15

El paquete lubridate es ideal para este tipo de cosas.

> 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 
Cuestiones relacionadas