Connaître le jour en rapport avec une date

Résolu
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   -  
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je voudrais trouver un script qui me retourne le jour par rapport à une date donnée.
Exemple, aujourd'hui nous sommes le 4 mars, le résultat doit être 4 puisque c'est un jeudi.

J'utilise le code suivant mais cela fonctionne avec la fonction "date", comment y passer une variable ???
numjour= $(date +%w)

if test $numjour -eq 1
then

echo "lundi"

elif test $numjour -eq 1

echo "mardi"
fi
Mon Shell est #!/bin/ksh

Merci d'avance car je ne trouve rien du tout !
A voir également:

32 réponses

OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
Oui,
sauf que apparement je n'y ai pas accès :
find: cannot read dir /app/gnu/lib/gcc-lib/sparc-sun-solaris2.4: Permission denied
find: cannot read dir /app/gnu/lib/g++-include/gen: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/sun4-solaris/auto: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/sun4-solaris/Tk: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/auto/Calendar: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/auto/Data: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/auto/PDA: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/auto/Tk: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/PDA: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/Calendar: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/Data: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/Tk: Permission denied
0
dubcek Messages postés 19021 Statut Contributeur 5 640
 
demande au sysadmin d'avoir accès à ces librairies perl
qu'y a-t-il dans /app/gnu ? ls /app/gnu
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
Pas accès :-(

find: cannot read dir /app/gnu/lib/gcc-lib/sparc-sun-solaris2.4: Permission denied
find: cannot read dir /app/gnu/lib/g++-include/gen: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/sun4-solaris/auto: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/sun4-solaris/Tk: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/auto/Calendar: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/auto/Data: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/auto/PDA: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/auto/Tk: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/PDA: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/Calendar: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/Data: Permission denied
find: cannot read dir /app/gnu/lib/perl5.004/Tk: Permission denied

Bon je suis pas du tout un expert mais l'exemple que j'ai trouvé 'ajouter-mois', ça t'aide pas pour retourner le numéro du jour ?
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
bin info lib man

les serveurs sont hébergés à Paris et moi je suis à Bruxelles, ils sont 10000 à l'IT ... dans 3 mois j'aurais une réponse :-)
0

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

Posez votre question
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
Bon,
j'ai un serveur qui rend l'âme là, je vais devoir m'absenter. On voit ça tout à l'heure ou lundi si t'es dispo.
Merci 1000 fois à touts en tout cas;
0
dubcek Messages postés 19021 Statut Contributeur 5 640
 
autre solution, tu vas là http://www.sunfreeware.com/programlistsparc10.html#coreutils
tu charges coreutils-8.2-sol10-sparc-local.gz et tu extrais date
tu auras la commande GNU date avec l'option --d
edit: j'ai dit une betise, c'est un package à installer avec pkgadd
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
Salut,
je pense qu'on est sur la bonne voie. cal 03 2010 m'affiche bien le calendrier dans son entièreté.
Ton exemple à partir de"#!/bin/bash", comment je fais pour sortie le résultat dans une variable stp ?
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
Ok, c'est ce que j'ai fait mais comment rien ne s'affiche je suppose que je fais une erreur quelque part, pourriez-vous me dire quelle est-elle ?

madate=28/2/2010
mois=02
annee=2010

set $(echo $madate | sed -e 's+/+ +g')

result=$(cal $mois $annee |nawk -v d=$madate 'BEGIN{split("dimanche lundi mardi mercredi jeudi vendredi samedi",j)}
NR>2 {sub("^0","",d) ; for(n=1;n<8;n++)if(substr($0,1+((n-1)*3),2)+0 == d)exit} ; END{print j[n]}')
echo "resultat : $result"
exit
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Est-ce que ça marche/marchait sans la variable ?
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
comme avec avec la variable je n'ai pas d'erreur mais je n'ai rien qui s'affiche non plus :-/
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Il faut que la commande soit sur une seule ligne !!!

cal $mois $annee |nawk -v d=$madate 'BEGIN{split("dimanche lundi mardi mercredi jeudi vendredi samedi",j)} NR>2 {sub("^0","",d) ; for(n=1;n<8;n++)if(substr($0,1+((n-1)*3),2)+0 == d)exit} ; END{print j[n]}'

0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
???? C'est affiché à la ligne dans le forum par manque de place !!!!!!!!!!!!!!!!
Tu as essayé toi de ton côté ?
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Non je n'ai pas essayé, mais normalement une commande s'écrit sur une seule ligne. Si on doit passer à la ligne pour des raisons de lisibilité, il faut protéger le retour à la ligne par un anti-slash.

cal $mois $annee |nawk -v d=$madate '\
BEGIN{split("dimanche lundi mardi mercredi jeudi vendredi samedi",j)} \
NR>2 \
{sub("^0","",d) ; \
for(n=1;n<8;n++)\
if(substr($0,1+((n-1)*3),2)+0 == d)\
exit} ;\
END{print j[n]}'
0
dubcek Messages postés 19021 Statut Contributeur 5 640
 
-v d=$madate
c'est faux

$1 = JJ/MM/AAAA, puis après le set $1 le jour, $2 le mois, $3 l'année
set $(echo $1 | sed -e 's+/+ +g'
cal $2 $3 |nawk -v d=$1 

donc
set $(echo $madate | sed -e 's+/+ +g'
cal $2 $3 |nawk -v d=$1 ...
0
OlivrT Messages postés 323 Date d'inscription   Statut Membre Dernière intervention   36
 
Ca maaaaaaaaaaaaaaaaaaaaaaaaaaaaarche ! :-)) SUPER ! Merci les gars
0