Convertir la date de naissance et qui affiche l'âge.

Fermé
tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 - 31 janv. 2015 à 13:37
tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 - 31 janv. 2015 à 20:42
bonjour , j'ai un script a faire et je ne sais pas comment convertir la date de naissance en age en shell avec ubuntu.

merci
A voir également:

8 réponses

tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 1
31 janv. 2015 à 17:42
peux être oui (nano.2.2.6)

ah d'accord bon je vais essayer ...
1
pourquoi donner la version de
nano
? c'est la version de
bash
qui est pertinente.
0
tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 1 > Utilisateur anonyme
31 janv. 2015 à 18:22
comment tu fais pour savoir la version de bash ?
0
Utilisateur anonyme
31 janv. 2015 à 18:36
echo $BASH_VERSION
!
0
tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 1
31 janv. 2015 à 18:39
4.2.24
0
Utilisateur anonyme
31 janv. 2015 à 19:00
ça devrait fonctionner alors.

montre-nous ton script, et comment tu l'exécutes.
0
Utilisateur anonyme
31 janv. 2015 à 15:14
salut,

la date de naissance : yyyy/mm/dd
ou
la date de naissance : yyyy-mm-dd
ou
la date de naissance ; dd mois yyyy
ou
...
0
tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 1
31 janv. 2015 à 15:39
bonjour qqch , merci de m'avoir répondu

oui je suis d'accord avec sa mais comment fais tu pour convertir la date de naissance yyyy/mm/dd en age ( afin d'afficher l'age ) ?
0
Utilisateur anonyme
31 janv. 2015 à 16:01
en bash:
$ date="1976/10/23"
$ declare -i age
$ printf -v age "%(%Y)T-$(date -d${date//\//-} +%Y)"
$ echo $age
39
0
tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 1
31 janv. 2015 à 17:16
j'ai ajouté la commande déclare-i age , il me dit erreur de syntaxe operateur(le symbole erronée est"-")
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
31 janv. 2015 à 17:33
peut-être un problème de version de bash, je travaille avec la version 4.3.
que retourne
echo $BASH_VERSION
?

il faut d'ailleurs, pour bash 4.2, ajouter
-1
comme argument à la commande
printf
, pour obtenir la date de l'année en cours.
0
tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 1
Modifié par tnt77 le 31/01/2015 à 19:10


je l'exécute avec bash nomduscript en ayant changer les droits avec chmod
ps: y'a un f au tout début c'est pas fait exprès .
0
Utilisateur anonyme
31 janv. 2015 à 19:14
date-1
devrait afficher une erreur
la variable à utiliser n'est pas
$date
, mais
$ddn
.
0
tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 1
31 janv. 2015 à 19:24
ah ouais exact , après modification,
il m'affiche 2 erreurs :
ligne 6 :ddn-1: commande introuvable
ligne 6: printf: 1970- : erreur de syntaxe : opérande attendue le symbole erroné est "-")
0
pourquoi est-ce que tu purges
$ddn
?
comment veux-tu l'utiliser après ?

et puis, ouah !
$(date...)
n'est pas une variable, c'est une substitution de commande, de la commande
date
, pour être précis.

enfin, où ai-je écrit
date-1
?
0
tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 1
Modifié par tnt77 le 31/01/2015 à 19:58

non je me suis trompé pour le -1 et j 'avais comprit que je devait mettre $ddn a la place de $date... je trouver bizarre ^^
0
ouah!

il y a dans mon code, je m'en excuse deux éléments qui portent le même nom (c'est ma faute)
la commande
date
dans une substitution de commande : $(une_commande)

et la variable
${date}
, dans laquelle j'effectue une substitution : remplacer les
/
par des tirets.

je te le réécris au propre, et tu peux m'offrir un paquet de bonbon :
#!/bin/bash

declare -i age
echo "Saisissez votre date de naissance au format YYYY/MM/DD : "
read ddn
printf -v age "%(%Y)T - $(date -d ${ddn//\//-} +%Y)" -1
echo $age
il faudra ajouter une test pour vérifier que la date fournie est dans le bon format.

trouves-toi un exemplaire du Advanced Bash Scripting Guide sur internet en français.
tu en as vraiment besoin !
0
tnt77 Messages postés 11 Date d'inscription samedi 31 janvier 2015 Statut Membre Dernière intervention 21 février 2015 1
31 janv. 2015 à 20:42
Ah oui parfait j'avait pas fait d'espace entre la fin du " et le -1 ^^
Merci beaucoup :D
0