Obtenir le numéro de semaine basé sur la date avec le premier jour de la semaine différent en gawk

0

Comment obtenir le numéro de semaine sous Linux en utilisant gawk avec un premier jour différent de la semaine? la datecommande peut me donner le numéro de semaine avec +%Vmais il est basé sur lundi (1-53) ou +%U(basé sur dimanche, 0-53).

J'ai essayé de faire ceci:, date -d "ddmmyy+2days" +%Vmais le résultat n'est pas correct. Je veux que le premier jour de la semaine soit basé le samedi.

Merci

EDIT: ajouter les critères Le premier jour de la semaine à ma place est le samedi et la première semaine dépend du nombre de jours jusqu'au samedi le plus proche. Si la semaine en cours a moins de 4 jours avant le samedi le plus proche, il sera compté dans la dernière semaine de l'année (52/53). C'est la même chose avec la semaine en fin d'année.

Nandaka
la source
soyez prudent: la définition du numéro de semaine (au moins dans les affaires) peut être délicate; Par exemple, dans de nombreux pays, semaine1 est définie comme "la première semaine contenant un jeudi". Ainsi, la semaine 1 pourrait finir par être dans la dernière année!.
oui, le premier jour de la semaine à ma place est le samedi et la première semaine dépend du nombre de jours jusqu'au samedi le plus proche. Si la semaine en cours a moins de 4 jours avant le samedi le plus proche, il sera compté dans la dernière semaine de l'année (52/53). C'est la même chose avec la semaine en fin d'année ...
nandaka

Réponses:

0

strftime(au moins en gawk) peut le faire. Par exemple:

awk '{print strftime("%U",systime()) ; exit }'

Voir la documentation officielle ici: http://www.gnu.org/software/gawk/manual/html_node/Time-Functions.html

Zsolt Botykai
la source
Le problème est le suivant: je souhaite obtenir le numéro de semaine de la date mais avec un premier jour différent de la semaine (par exemple: samedi). Le premier jour de la semaine pour% U est le dimanche et% V est le lundi.
Nandaka
Ensuite, ajout d'une ifdéclaration, par exempleif ( strftime("%A",systime()) == "Saturday" ) { print strftime("%U",systime())+1 } else { strftime("%U",systime()) }
Zsolt Botykai le