Re: Convertion de format d'écriture de date

2004-12-01 Par sujet Jonathan ILIAS

FrédéricBothamy a écrit :

Solution sale à retravailler:
for i in `seq 1 12`; do cal $i 2004 ; done | cut -b7-8



Hop :

for i in `seq 0 51`; do date --date="4 Jan 2005 +$i weeks"; done

(ou on peut faire simplement cal 2005 pour avoir le calendrier complet
pour 2005).


Voilà une belle conclusion à ce fil de discussion :)

--
Jonathan ILIAS, qui, en plus d'admirer la créativité de Frédéric et de 
Yves, a pris connaissance d'une commande bien pratique : "seq"




Re: Convertion de format d'écriture de date

2004-11-30 Par sujet Frédéric Bothamy
* Yves Rutschle <[EMAIL PROTECTED]> [2004-11-30 11:26] :
> On Tue, Nov 30, 2004 at 11:10:07AM +0100, Jonathan ILIAS wrote:
> > Même si je peux m'en sortir manuellement, difficile de faire un script 
> > qui me sorte tous les mardi pour l'année 2005.
> 
> Solution sale à retravailler:
> for i in `seq 1 12`; do cal $i 2004 ; done | cut -b7-8

Hop :

for i in `seq 0 51`; do date --date="4 Jan 2005 +$i weeks"; done

(ou on peut faire simplement cal 2005 pour avoir le calendrier complet
pour 2005).


Fred

-- 
Comment poser les questions de manière intelligente ?
http://www.gnurou.org/documents/smart-questions-fr.html
Comment signaler efficacement un bug ?
http://www.chiark.greenend.org.uk/~sgtatham/bugs-fr.html



Re: Convertion de format d'écriture de date

2004-11-30 Par sujet Jonathan ILIAS

Yves Rutschle a écrit :

Solution sale à retravailler:
for i in `seq 1 12`; do cal $i 2004 ; done | cut -b7-8


Soit, il existe de nombreuses façons d'obenir une solution à un problème 
spécifique, moyennant a pire une légère intervention manuelle.


L'objet de ma question initiale était de savoir s'il existait un outil 
"générique" permettant de faire des conversions de format d'écriture de 
date. Pour mes deux problèmes présentés précédemment, la solution aurait 
alors été assez simple.


Si ça n'existe pas, je prendrai le temps d'entamer le développement d'un 
tel outil, avec le patrimoine de code que nous offre le logiciel libre, 
cela devrait se limiter à intégrer quelques bouts de code... Mais je ne 
voudrais pas réinventer la roue.



PS : je ne voudrais pas paraître ingrat, merci tout de même à vous qui 
vous intéressez à mon problème :)


--
Jonathan ILIAS



Re: Convertion de format d'écriture de date

2004-11-30 Par sujet Yves Rutschle
On Tue, Nov 30, 2004 at 11:10:07AM +0100, Jonathan ILIAS wrote:
> Même si je peux m'en sortir manuellement, difficile de faire un script 
> qui me sorte tous les mardi pour l'année 2005.

Solution sale à retravailler:
for i in `seq 1 12`; do cal $i 2004 ; done | cut -b7-8

Y.



Re: Convertion de format d'écriture de date

2004-11-30 Par sujet Jonathan ILIAS

FrédéricBothamy a écrit :

Si, si, c'est dans la doc (c'est le dernier exemple donné dans le
fichier .info) :

 To convert such an unwieldy number of seconds back to a more
 readable form, use a command like this:

  date -d '1970-01-01 946684800 sec' +"%Y-%m-%d %T %z"
  2000-01-01 00:00:00 +

Cependant :

date -d '1970-01-01 1103929200 sec' +"%Y-%m-%d %T %z"
2004-12-24 23:00:00 +0100

Le bon nombre de secondes est plutôt :

date -d '1970-01-01 1103932800 sec' +"%Y-%m-%d %T %z"
2004-12-25 00:00:00 +0100


Ah, en effet, j'avais mal lu la doc ;-)

Du coup, j'ai approfondi un peu, et j'ai trouvé une piste pour mon 
premier problème (conversion des dates dans le fichier de bookmark de 
Mozilla) :

info --node="Date input formats" --file=coreutils.info.gz

En fait, je voulais obtenir la liste de tous les mardi d'une année.
J'arrive actuellement la chose de façon relative à la date courante :
$ date -d "1 Tuesday"
mar nov 30 00:00:00 CET 2004
$ date -d "2 Tuesday"
mar déc  7 00:00:00 CET 2004

Même si je peux m'en sortir manuellement, difficile de faire un script 
qui me sorte tous les mardi pour l'année 2005.


Il y a peut-être une solution qui m'échappe encore...

--
Jonathan ILIAS



Re: Convertion de format d'écriture de date

2004-11-30 Par sujet Frédéric Bothamy
* Jonathan ILIAS <[EMAIL PROTECTED]> [2004-11-30 08:51] :
> Yves Rutschle a écrit :
> >Tu as mal lu la doc:
> Si si. Enfin, en tout cas, ce n'est pas la solution que je cherche. Dans 
> la solution que tu proposes, je ne peux pas choisir le format de la date 
> d'entrée.
> 
> Par exemple, j'aimerai passer de 1103929200 (nombre de secondes depuis 
> 1er janvier 1970) à 25/12/2004.

Si, si, c'est dans la doc (c'est le dernier exemple donné dans le
fichier .info) :

 To convert such an unwieldy number of seconds back to a more
 readable form, use a command like this:

  date -d '1970-01-01 946684800 sec' +"%Y-%m-%d %T %z"
  2000-01-01 00:00:00 +

Cependant :

date -d '1970-01-01 1103929200 sec' +"%Y-%m-%d %T %z"
2004-12-24 23:00:00 +0100

Le bon nombre de secondes est plutôt :

date -d '1970-01-01 1103932800 sec' +"%Y-%m-%d %T %z"
2004-12-25 00:00:00 +0100


Fred

-- 
Comment poser les questions de manière intelligente ?
http://www.gnurou.org/documents/smart-questions-fr.html
Comment signaler efficacement un bug ?
http://www.chiark.greenend.org.uk/~sgtatham/bugs-fr.html



Re: Convertion de format d'écriture de date

2004-11-30 Par sujet Jonathan ILIAS

Yves Rutschle a écrit :

Tu as mal lu la doc:
Si si. Enfin, en tout cas, ce n'est pas la solution que je cherche. Dans 
la solution que tu proposes, je ne peux pas choisir le format de la date 
d'entrée.


Par exemple, j'aimerai passer de 1103929200 (nombre de secondes depuis 
1er janvier 1970) à 25/12/2004.


J'ai eu une idée, suite à ta réponse, mais date ne semble pas vouloir de 
cette syntaxe :

$ date -d "1101205039+%s" "+%D"
date: date invalide « 1101205039+%s »
$ date -d "1101205039 +%s" "+%D"
date: date invalide « 1101205039 +%s »


Par exemple:

@oban]:yves$ date -d "12/25/2004" +"%a"
Sat

Noël est un samedi!


(Remarque inutile) Je dirai même plus :
echo "Noël est un `LC_ALL=fr_FR date -d "12/25/2004" "+%A"`"

--
Jonathan ILIAS



Re: Convertion de format d'écriture de date

2004-11-29 Par sujet Yves Rutschle
On Mon, Nov 29, 2004 at 04:49:36PM +0100, Jonathan ILIAS wrote:
> Je pensais utiliser la commande "date" mais, sauf à avoir mal lu la doc, 
> elle ne me permet pas de choisir :

Tu as mal lu la doc:

> - un format de date en entrée, pour interpréter la date que je lui donne

option -d

> - un format de date en sortie, pour m'afficher la date dans le format 
> qui m'intéresse.

option +"..."

Par exemple:

@oban]:yves$ date -d "12/25/2004" +"%a"
Sat

Noël est un samedi!

Y.



Convertion de format d'écriture de date

2004-11-29 Par sujet Jonathan ILIAS

Bonjour,

cela fait plusieurs fois que je rencontre le problème : j'ai besoin de 
convertir le format d'une date.


Je pensais utiliser la commande "date" mais, sauf à avoir mal lu la doc, 
elle ne me permet pas de choisir :

- un format de date en entrée, pour interpréter la date que je lui donne
- un format de date en sortie, pour m'afficher la date dans le format 
qui m'intéresse.


C'est le genre de truc très pratique dans l'écriture de scripts ou 
autres choses... J'imagine que ça doit exister mais je n'arrive pas à 
mettre la main là dessus. Any idea ?

--
Jonathan ILIAS