Son las 23:04 del 13 de Septiembre (y encima Viernes), tengo algo menos de una hora para explicar el porqué de esta fecha para celebrar el día del programador y hacer algo en R aprovechando tan insigne día.

El día del programador se celebra el día número 256 de cada año (13 de septiembre durante los años normales y el 12 de septiembre durante los bisiestos), la explicación de porqué este día y no otro se entiende cuando hablamos de programadores, 256 (2 elevado a 8) es la cantidad de valores que puede representarse con 1 byte (8 bits). Además, el número 256 es la mayor potencia de 2 menor que 365 (cantidad de días de un año).

Calcular el día del año

Usando el operador pipe del paquete (dplyr) voy transformando el dato, Sys.time() retorna la fecha-hora actual, a continuación lo convierto en una cadena con strftime representado como el día del año (un valor entre 001 a 366) con el formato “%j”, al final convierte la cadena en número.

> Sys.time() %>% strftime(, format = "%j") %>% as.numeric()
[1] 256

El resto es trivial:

if ( Sys.time() %>% strftime(, format = "%j") %>% as.numeric() == 0x100) {
  "Happy programmers day"
} else {
  "Not today"
}

Calcular el día del programador dado el año

Dado un año calcula la fecha del día del programador, convierto la cadena

> year <- 2016
> as.Date(sprintf("%d-01-01", year)) + 255
[1] "2016-09-12"

Lubridate: Paquete para manipular fechas

Lubridate (PDF) es un paquete para trabajar con fechas, yday calcula el día del año dada la fecha actual:

> Sys.time() %>% yday()
[1] 256

Código fuente

Conclusiones

Son las 00:05 del 14 de Septiembre, objetivo cumplido, compruebo que ya no es el día del programador, que mis algoritmos funcionan. Me voy a ver un capítulo de Preacher basada en el comic de Garth Ennis y Steve Dillon.

¿Para otro post algo sobre Viernes 13?

#HappyProgrammersDay

Enlaces externos