Compter le nombre de jours du mois courant
DarkBune
Messages postés
215
Statut
Membre
-
tuxboy Messages postés 1083 Statut Membre -
tuxboy Messages postés 1083 Statut Membre -
Bonjour,
j'aimerai créer un script qui affichera le nombre de jours du mois courant
voici mon script
#! /bin/bash
MOIS=$ (date +"%m") case $MOIS in 01) NOM="janvier";; 02)
NOM="fevrier";; 03) NOM="mars";; 04) NOM="avril";; 05) NOM="mai";; 06) NOM="juin";;
07) NOM)"juillet";; 08) NOM="aout";; 09) NOM="septembre";; 10) NOM="octobre";; 11) NOM="novembre";; 12) NOM="de$
echo "31 jours en "$NOM" "$ANNEE;; 04|06|09|11) echo "30 jours en "$NOM" "$ANNEE;;
02) BISSEXTILITE=$(exp $ANNEE %4) if [ $BISSEXTILITE != 0] then echo "28 jours en "$NOM" "$ANNE
else BISSEXTILITE=$(expr $ANNE %100) if [ $BISSEXTILITE !=0] then echo "29 jours en "$NOM" "*ANNE
else BISSEXTILITE=$(expr $ANNE %400) if [ $BISSEXTILITE !=0] then echo "28 jours en "$NOM" "$ANNEE
else echo "29 jours en "$NOM" "$ANNEE fi fi fi;; esac
je comprends pas , il m'affiche une erreur ligne 1
Merci
j'aimerai créer un script qui affichera le nombre de jours du mois courant
voici mon script
#! /bin/bash
MOIS=$ (date +"%m") case $MOIS in 01) NOM="janvier";; 02)
NOM="fevrier";; 03) NOM="mars";; 04) NOM="avril";; 05) NOM="mai";; 06) NOM="juin";;
07) NOM)"juillet";; 08) NOM="aout";; 09) NOM="septembre";; 10) NOM="octobre";; 11) NOM="novembre";; 12) NOM="de$
echo "31 jours en "$NOM" "$ANNEE;; 04|06|09|11) echo "30 jours en "$NOM" "$ANNEE;;
02) BISSEXTILITE=$(exp $ANNEE %4) if [ $BISSEXTILITE != 0] then echo "28 jours en "$NOM" "$ANNE
else BISSEXTILITE=$(expr $ANNE %100) if [ $BISSEXTILITE !=0] then echo "29 jours en "$NOM" "*ANNE
else BISSEXTILITE=$(expr $ANNE %400) if [ $BISSEXTILITE !=0] then echo "28 jours en "$NOM" "$ANNEE
else echo "29 jours en "$NOM" "$ANNEE fi fi fi;; esac
je comprends pas , il m'affiche une erreur ligne 1
Merci
A voir également:
- Compter le nombre de jours du mois courant
- Nombre de jours entre deux dates excel - Guide
- Compte facebook suspendu 180 jours - Guide
- Compte instagram suspendu 180 jours - Guide
- 600h en mois ✓ - Forum Bureautique
- Youtube premium 2 mois gratuit - Accueil - TV & Vidéo
6 réponses
Bonjour,
En bash il y a beaucoup plus simple :
Le code suivant :
affiche le nombre de jours du mois courant.
La commande "date" permet de faire des calculs en langage naturel, par exemple en disant « aujourd’hui + 1 an + 1 mois − 3 jours ».
Pour afficher du texte autour de ce chiffre :
Le fonctionnement de la commande présente est le suivant :
retourne le jour actuel (14, pour le 14 octobre).
Place le jour dans un nombre, une variable.
retire (-) le nombre (14) de jours (days). Pour aujourd’hui, ça mettrait « -14 days ».
Affiche la date correspondant à la date actuelle -14 jours. Soit le dernier jour du mois précédent.
Comme on veut le mois courant, il faut ajouter un mois.
Ici on affiche la date complète du dernier jour de ce mois.
Si on ne veut que le jour (31, pour ce mois-ci), on ajoute +%d :
Dans d’autres langages de prog (par exemple en JS pour moi en ce moment), il est courant de faire comme ça : on prend le premier jour d’un mois donné (1 octobre), on ajoute un mois (1 novembre) et on retire un jour (31 octobre), et l’on dispose alors du dernier jours du mois.
En bash il y a beaucoup plus simple :
Le code suivant :
date -d "-$(date +%d) days + 1 month" +%d
affiche le nombre de jours du mois courant.
La commande "date" permet de faire des calculs en langage naturel, par exemple en disant « aujourd’hui + 1 an + 1 mois − 3 jours ».
Pour afficher du texte autour de ce chiffre :
date -d "-$(date +%d) days + 1 month" +"%d jours dans %B"
Le fonctionnement de la commande présente est le suivant :
date +%d
retourne le jour actuel (14, pour le 14 octobre).
$(date +%d)
Place le jour dans un nombre, une variable.
-$(date +%d) days
retire (-) le nombre (14) de jours (days). Pour aujourd’hui, ça mettrait « -14 days ».
date -d "-$(date +%d) days"
Affiche la date correspondant à la date actuelle -14 jours. Soit le dernier jour du mois précédent.
date -d "-$(date +%d) days + 1 month"
Comme on veut le mois courant, il faut ajouter un mois.
Ici on affiche la date complète du dernier jour de ce mois.
Si on ne veut que le jour (31, pour ce mois-ci), on ajoute +%d :
date -d "-$(date +%d) days + 1 month" +%d
Dans d’autres langages de prog (par exemple en JS pour moi en ce moment), il est courant de faire comme ça : on prend le premier jour d’un mois donné (1 octobre), on ajoute un mois (1 novembre) et on retire un jour (31 octobre), et l’on dispose alors du dernier jours du mois.
Salut,
Ton script apparaît tel quel dans ton éditeur de texte ?
À défaut de mettre un point virgule (;) entre chaque instruction, mettre au moins un retour à la ligne, ne serait-ce que pour la lisibilité ;-(
Ton script apparaît tel quel dans ton éditeur de texte ?
À défaut de mettre un point virgule (;) entre chaque instruction, mettre au moins un retour à la ligne, ne serait-ce que pour la lisibilité ;-(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici la réponse à votre question.
Par contre j'aimerais pouvoir entrer une date et un mois afin d'avoir un retour.
Pouvez-vous m'aider?
MERCI D'AVANCE
Par contre j'aimerais pouvoir entrer une date et un mois afin d'avoir un retour.
Pouvez-vous m'aider?
#!/bin/bash
MOIS=$(date +"%m")
case $MOIS in
01) NOM="janvier";;
02) NOM="fevrier";;
03) NOM="mars";;
04) NOM="avril";;
05) NOM="mai";;
06) NOM="juin";;
07) NOM="juillet";;
08) NOM="aout";;
09) NOM="septembre";;
10) NOM="octobre";;
11) NOM="novembre";;
12) NOM="decembre";;
esac
ANNEE=$(date +"%Y")
case $MOIS in
01|03|05|07|08|10|12)
echo "31 jours en $NOM $ANNEE";;
04|06|09|11)
echo "30 jours en "$NOM" "$ANNEE;;
02)
BISSEXTILITE=$(expr $ANNEE % 4)
if [ $BISSEXTILITE != 0 ]
then
echo "28 jours en "$NOM" "$ANNEE
else
BISSEXTILITE=$(expr $ANNEE % 100)
if [ $BISSEXTILITE != 0 ]
then
echo "29 jours en "$NOM" "$ANNEE
else
BISSEXTILITE=$(expr $ANNEE % 400)
if [ $BISSEXTILITE != 0 ]
then
echo "28 jours en "$NOM" "$ANNEE
else
echo "29 jours en "$NOM" "$ANNEE
fi
fi
fi
esac
MERCI D'AVANCE
quand je lance votre script cela m'affiche cela : "date: date incorrecte "- 14 days + 1 mouth "
Dans votre message, vous écrivez "mouth" alors que c’est bien "month".