clock

 

clock- Obtient et manipule l'heure

SYNTAXE

 clock option ?arg arg ...''

DESCRIPTION

Cette commande effectue l'une des opérations qui permettent d'obtenir ou de manipuler des chaînes ou des valeurs qui représentent une notion de temps. L'argument option détermine l'action effectuée par la commande. Les options légales (qui peuvent être abrégées) sont:

clock clicks ?-milliseconds?

Retourne une valeur haute-résolution de l'heure en tant que valeur entière dépendante du système. L'unité de valeur dépend du système mais est la plus haute résolution d'horloge disponible sur le système tel un cycle CPU. Si -milliseconds est spécifié, alors on a la garantie que la valeur a une granularité de la milliseconde. Cette valeur ne doit être utilisée que pour la mesure relative du temps écoulé.

clock format clockValue ?-format string? ?-gmt boolean?

Convertit un entier représentant un temps, typiquement renvoyé par clock seconds, clock scan, ou les options atime, mtime, ou ctime de la commandefile, en une forme compréhensible. Si l'argument -format est présent l'argument suivant est une chaîne qui décrit comment date et l'heure doivent être formatés. Les descripteurs de champs sont constitués d'un % suivi par un caractère descripteur de champ. Tous les autre caractères sont copiés dans résultat. Les descripteurs de champs valides sont:

De plus, les descripteurs de champs suivants peuvent être supportés sur quelque systèmes (ex. Unix mais pas Windows):

Si l'argument - format n'est pas spécifié, la chaîne de formatage "%a %b %d %H:%M:%S %Z %Y" est utilisée. Si l'argument -gmt est présent il doit être suivi d'un booléen qui s'il est vrai spécifie que l'heure doit être formatée comme une heure Greenwich Mean Time. S'il est faux, la timezone locale définie par l'environnement d'exploitation est utilisée.

clock scan dateString ?-base clockVal? ?-gmt boolean?

Convertit dateString en une valeur d'horloge entière (voir clock seconds). Cette commande peut virtuellement analyser et convertir toute chaîne de date et/ou d'heure standard, qui peut inclure des mnémoniques timezone standards. Si une heure est spécifiée seule, la date courante est supposée. Si la chaîne ne contient pas de mnémoniques timezone, la timezone locale est supposée, à moins que l'argument -gmt soit vrai, auquel cas la valeur horloge est calculée en présumant que l'heure spécifiée est relative à Greenwich Mean Time. -gmt, si spécifié, affecte seulement la valeur de l'heure calculée; elle n'influe pas sur l'interprétation de -base. Si le flag -base est spécifié, l'argument suivant doit contenir une valeur horloge entière. Seule la date de cette valeur est utilisée, pas l'heure. Ceci est utile pour déterminer l'heure d'un jour spécifique ou faire d'autres conversions relatives à la date. La dateString est constitué de zéro ou plus éléments de la forme suivante: time L'heure du jour, qui est de la forme: hh?:mm?:ss?? ?meridian? ?zone? ou hhmm ?meridian? ?zone?. Si méridien n'est spécifié, hh est interprété sur une horloge 24-heures. date Une date mois et jour spécifique avec l'année optionnelle. Les formats acceptables sont mm/dd?/yy?, monthname dd ?, yy?, dd monthname ?yy?, day, dd monthname yy, ?CC?yymmdd, ?CC?yy-mm-dd, dd-monthname-?CC?yy. L'année par défaut est l'année courante. Si l'année est inférieure à 100, les années 00-68 seront interprétées 2000-2068 et les années 69-99 comme 1969-1999. Toutes les plate-formes ne savent pas représenter les années 38-70, aussi l'utilisation de ces années peut entraîner une erreur. ISO 8601 point-in-time Une spécification ISO 8601, telle que CCyymmddThhmmss, ou T est le littéral T, CCyymmdd hhmmss, ou CCyymmddThh:mm:ss. relative time Une spécification relative à l'heure courante. Le format est number unit , les unités acceptables sont year, fortnight, month, week, day, hour, minute (ou min), et second (ou sec). L'unité peut être donnée au singulier ou au pluriel, comme dans 3 weeks. Ces modificateurs peuvent aussi être: tomorrow, yesterday, today, now, last, this, next, ago. La date actuelle est calculée selon les étapes suivantes. D'abord, toute date et/ou temps absolu est traitée et convertie. Partant de cet instant comme base, les spécifications du jour de la semaine sont ajoutées. Ensuite, des spécifications relatives sont utilisées. Si une date ou un jour est spécifié, et qu'aucune heure absolue ou relative n'est donnée, minuit est utilisé. Finalement, une correction est appliquée ainsi l'heure du jour correcte est produite après les rectifications pour l'heure d'été et la date correcte est donnée au passage de la fin d'un mois long à un mois court. La correction d'heure d'été est appliquée seulement quand l'heure relative est spécifiée dans les unités de jour ou plus, c.a.d., jours, semaines, quinzaines, mois ou années. Ceci signifie que quand on change d'heure, des résultats différents seront donnés pour clock scan "1 day" et clock scan "24 hours": % clock scan "1 day" -base [clock scan 1999-10-31] 941443200 % clock scan "24 hours" -base [clock scan 1999-10-31] 941439600

clock seconds

Retourne l'heure et la date courante comme valeur entière dépendante du système . L'unité de valeur est la seconde, lui permettant d'être utilisée pour les calculs de temps relatif. La valeur est usuellement définie comme le temps total écoulé depuis un "epoch". Vous ne pouvez présumer la valeur de l'epoch.


Discussion

  http://groups.google.com/group/fr.comp.lang.tcl/browse_frm/thread/ec73b278352d3234

  De :		Eric Hassold - afficher le profil
  Date :		Lun 9 oct 2006 01:12
  E-mail : 		Eric Hassold <hass...@evolane.com>
  Groupes : 		fr.comp.lang.tcl
  Note : 		 (1 utilisateur)

  Miko a écrit :

  >> le numéro du jour de l'année (1 - 365) et l'année en cours (2000- 2100
  >> me suffira....)

  Jusqu'au 19 janvier 2038, tout va aller pour toi. Mais si tu veux
  vraiment que ça marche jusqu'en 2100, tu vas être déçu avec les clock
  scan/format sous Tcl 8.4, pour la simple raison que l'epoch est
  représente par un entier 32 bits signe, avec sous la plupart des
  machines (pas toutes, mais Linux et Win32 par exemple) le 01/01/1970
  comme référence :

  % clock format 0
  Thu Jan 01 00:00:00 UTC 1970

  et que donc le mieux que saura faire clock avec est:

  % clock format 0x7fffffff
  mar jan 19 04:14:07 CET 2038

  qui se gâtera avec:

  % clock scan {2035-01-01}
  2051222400
  % clock scan {2040-01-01}
  unable to convert date-time string "2040-01-01
  % clock format 0x80000000
  Fri Dec 13 20:45:52 UTC 1901

  La bonne nouvelle, c'est que d'ici la (et espérons un peu avant quand
  même), Tcl 8.5 sera finalise,  et que tu pourras profiter de son support
  très étendu des dates, avec enter autre epoch sur 64 bits.

  Y'a même dans 8.5 plein d'autres trucs super "marrants", comme la
  localisation géographique (e.g. -locale fr_FR), ou le support du
  calendrier julien et grégorien avec gestion correcte du passage de l'un
  a l'autre quand on fait justement des "+XXXdays" autour de la date de
  basculement, en gérant même cette date en fonction du pays! Pas
  forcement d'un usage courant pour tous, mais cette réécriture from
  scratch de la commande "clock" dans Tcl 8.5 vaut vraiment le coup d’œil.

  Éric

VOIR ÉGALEMENT

Calculer avec des dates ou des heures


Catégorie Manuel Tcl/Tk