Je veux faire quelques manipulations de calendrier dans bash - spécifiquement, je veux comprendre la dernière date d'un mois donné (y compris l'année bissextile, et une préparation d'une table pour une recherche n'est pas une solution valide pour moi).Calculs du calendrier dans bash
Soi-disant que j'ai le code suivant:
$year=2009
$start_month=2
$end_month=10
for $month in $(seq $start_month $end_month); do
echo "Last date of "$(date +"%B" -d "${year}-${month}-01")" is: " ???
done
Je ne peux pas comprendre comment faire quelque chose comme ça. Je pensais que date -d
fonctionnerait comme POSIX mktime et plierait les dates invalides à leurs équivalents valides, donc je pourrais dire quelque chose comme date -d "2009-03-00"
et obtenir '2009-02-28', mais pas une telle chance.
Est-il possible de le faire en utilisant seulement ce qui est disponible sur bash dans un environnement GNU standard?
Heh, brillant. Merci. Évidemment j'aurais dû lire la documentation d'information (pas que je vais maintenant, je ne peux pas supporter le navigateur d'informations). ' – Guss
' 2009-02-01 dernier jour mois 'fonctionne également, mais c'est plus élégant. –