J'utilise le code suivant pour déterminer si l'heure d'été est utilisée en Europe centrale au jour indiqué par les variables année, mois et jour.Debian ne tient pas compte de l'heure d'été dans R
timeString = paste(toString(year), formatC(month, width = 2, flag="0"), formatC(day, width = 2, flag="0"), "12", sep = "-")
time = strptime(timeString, format = "%Y-%m-%d-%H")
diff = as.numeric(as.POSIXct(time, tz="UTC") - as.POSIXct(time, tz="Europe/Prague"))
Sur mon PC (Ubuntu 16.04), diff est 2 lorsque heure d'été est actif, 1 othervise, mais sur le serveur avec Debian 8.8, il est 1 dans tous les cas. Savez-vous comment configurer le serveur pour qu'il se comporte comme Ubuntu? Merci. Mise à jour: La modification des paramètres d'heure Debian changerait également le temps utilisé pour crontab, ce qui n'est pas souhaitable. La réinstallation de R avec une nouvelle configuration semblait risquée, car quelques scripts R fonctionnaient toutes les quelques minutes. J'ai donc choisi la solution « laid » sous forme de la fonction R:
DaylightSaving = function(year, month, day) {
# years 2010-2030
if (year < 2010 || year > 2030) {
stop("The function is implemented now only for years 2010-2030")
}
dayStart = c(28, 27, 25, 31, 30, 29, 27, 26, 25, 31, 29, 28, 27, 26,
31, 30, 29, 28, 26, 25, 31)
dayEnd = c(31, 30, 28, 27, 26, 25, 30, 29, 28, 27, 25, 31, 30, 29,
27, 26, 25, 31, 29, 28, 27)
if (month < 3 || month > 10) {
return(FALSE)
} else if (month == 3 && day < dayStart[year - 2009]) {
return(FALSE)
} else if (month == 10 && day >= dayEnd[year - 2009]) {
return(FALSE)
}
return(TRUE)
}
Avez-vous pris le temps de vérifier si les deux systèmes ont le même paramètre de fuseau horaire? –