1 votes

2019 calcul de la semaine incorrecte par le masque de format de date standard

Normalement, je calcule la semaine de l'année en utilisant le masque de format de date standard. %Y%W . Jusqu'en 2019 cela a bien fonctionné mais ces derniers jours j'ai remarqué que la première semaine de l'année 2019 (2018/12/31-2019/01/06) est affichée comme la dernière semaine numéro 53 de 2018. Et seule la semaine 2019/01/07-2019/01/13 est la première semaine de 2019. J'ai vérifié si c'est correct.

Partout, on peut constater que la semaine 2018/12/31-2019/01/06 est actuellement la première semaine de 2019. Et même Oracle le sait to_char(..., 'yyyyiw') mais R ne le fait pas. Au moins, il devrait avoir la même opinion.

C'est important pour moi et je pense que cela ressemble à un bug. J'utilise R 3.5.0.

1voto

Abhishek Sha Points 618

参照 ?strftime :

 ‘%U’ Week of the year as decimal number (00-53) using Sunday as
      the first day 1 of the week (and typically with the first
      Sunday of the year as day 1 of week 1).  The US convention.

 ‘%V’ Week of the year as decimal number (01-53) as defined in ISO
      8601.  If the week (starting on Monday) containing 1 January
      has four or more days in the new year, then it is considered
      week 1.  Otherwise, it is the last week of the previous year,
      and the next week is week 1.  (Accepted but ignored on
      input.)

 ‘%W’ Week of the year as decimal number (00-53) using Monday as
      the first day of week (and typically with the first Monday of
      the year as day 1 of week 1).  The UK convention.

Le masque de format IW dans Oracle renvoie le Numéro de semaine ISO de l'année, c'est-à-dire %V en R :

R> x <- as.Date("2018-12-28") + 0:10
R> data.frame(date=x, weeknum=format(x, "%V"))
         date weeknum
1  2018-12-28      52
2  2018-12-29      52
3  2018-12-30      52
4  2018-12-31      01
5  2019-01-01      01
6  2019-01-02      01
7  2019-01-03      01
8  2019-01-04      01
9  2019-01-05      01
10 2019-01-06      01
11 2019-01-07      02

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X