Bébert.  Accueil Les commandes Créer des commandes La date Franciser son document Faire la Table des Matières Longueurs & unités dans ConTeXt
Insérer des PDF dans un document Installation de ConTeXt - LMTX Une commande pour écrire les siècles Typographie : Quelques définitions Polices incluses dans ConTeXt Commandes pour la mise en page

La date

Dans ConTeXt il existe une commande pour écrire les dates, qui s'appelle, chose remarquable, \date. Cette commande possède deux champs d'options qui ne sont pas obligatoires. La commande \date sans option renvoie la date courante. Son format dépend de la langue choisie pour ton document.

\starttext
\date
\stoptext

Le code ci-dessus renvoie :
July 17, 2018
car la langue par défaut de ConTeXt est l'anglais.

\setuplanguage [fr]
\mainlanguage [fr]
\starttext
\date
\stoptext

Le code ci-dessus renvoie :
17 juillet 2018

La première série d'options permet d'écrire une date en utilisant d=nombre pour le jour, m=nombre pour le mois et y=nombre pour l'année.

\setuplanguage [fr]
\mainlanguage [fr]
\starttext
\date[d=18,m=3,y=1871]
\stoptext

Donne :
18 mars 1871

Attention à chaque fois que tu utilises une = ne l'entoure pas d'espace. Si sous LaTeX cela n'a aucune importance, ConTeXt n'aime pas du tout et c'est source d'erreur de compilation difficile à retrouver. Donc tu écris d=18 et pas d = 18 ou d= 18.

L'ordre des options n'a aucune influence sur le format de la date :

\date[y=1871,d=18,m=3]

Donne le même résultat : 18 mars 1871

Pour modifier le format de la date il faut utiliser la deuxième série d'options.

Pour régler les jours on a les options :

Pour les mois :

Et pour les années :

Tu sépares les champs par des virgules et tu peux insérer entre les champs des délimiteurs comme des tirets, des espaces, des points virgules ou des virgules. Dans ce dernier cas tu les entoures de {}.

Pour les jours day, d et dd ont le même effet qui est d'écrire la date en chiffres. La seule différence est pour les 9 premiers jours qui sont écris 1, 2, 3, 4, 5, 6, 7, 8, 9 avec day et d et 01, 02, 03, 04, 05, 06, 07, 08, 09 avec dd.

:ord et :+ ont le même effet qui dépend de la langue utilisée. Pour le français ça ne sert à rien mais en anglais ajoute au numéro du jour st, nd, rd, th.

Par exemple :

\starttext
\date[d=18,m=3,y=1871] [d:ord,--,mm,--,yy]
\stoptext

Donne : 18th-03-71

et

\starttext
\date[d=2,m=3,y=1871] [d:ord,--,mm,--,yy]
\stoptext

Donne : 2nd-03-71

Pour le mois m et month écrivent le mois en toutes lettres et mm en chiffres. Il y a quelques subtilités en fonction de la langue du document. En français le mois est écrit tout en minuscules alors qu'en anglais la première lettre est en majuscule.

Pour l'année, y et year écrivent l'année en entier (1871) alors que yy n'écrit que les 2 derniers (71).

Tu mets ce que tu veux comme délimiteurs entre les éléments de la date. Comme la virgule est le séparateur de champ si tu veux dans ton texte séparer les éléments de la date par des virgules tu les mets entre {,}

[d,{, },mm,{, },yy]

La gestion des espaces est un peu délicate car tu ne peux pas mettre d'espace après les options :

[d ,--,mm~,--,yy ] ne marche pas ;

[d,--,mm,--,yy] est correcte.

Voici un exemple pour illustrer la gestion des espaces (~ ajoute un blanc)

\setuplanguage [fr]
\mainlanguage [fr]
\starttext
\date[d=18,m=3,y=1871] [le ,day,~du mois de ,m,~en l'an ,y]
\stoptext

donne : le 18 du mois de mars en l'an 1871

Pour formater l'ensemble des dates de ton document tu utilises la commande :

\setuplanguage [fr] [date={format de la date}]

Par exemple :

\setuplanguage [fr] [date={dd,/,mm,/,yy}]
\mainlanguage [fr]
\starttext
\date[d=18,m=3,y=1871] \par
\date
\stoptext

donne :
18/03/71
17/07/18

Il y a une différence entre le fait d'utiliser le nom des options en entier (day, month et year) et en abrégé (d, dd, m, mm, y et yy). Dans le premier cas ConTeXt ajoute automatiquement un blanc avant le champ.

\setuplanguage [fr]
\mainlanguage [fr]
\starttext
\date[d=18,m=3,y=1871] [d,m,y] \par
\date[d=18,m=3,y=1871] [day,month,year] \par
\date[d=18,m=3,y=1871] [year,month,day] \par
\stoptext

Donne :
18mars1871
18 mars 1871
1871 mars 18

Il existe une autre commande pour la date : \currentdate qui comme son nom l'indique affiche la date courante. Elle ne prend qu'un seul lot d'option celui du formatage. Tu peux utiliser tout ceux que l'on a vu ci-dessus, mais permet en plus d'utiliser l'option weekday qui permet d'afficher le jour de la semaine, mais uniquement de la date courante donc l'utiliser avec une autre date n'est pas très pertinent.

\setuplanguage [fr]
\mainlanguage [fr]
\starttext
\currentdate[weekday,day,month,year]
\stoptext

Donne :

mardi 17 juillet 2018

En anglais le mois et le jours ont une majuscule :

Thuesday 17 July 2018

Puisque que l'on est dans le temps la commande \currenttime permet d'écrier l'heure courante en voici des exemples :

\setuplanguage [fr]
\mainlanguage [fr]
\starttext
\currenttime\par
\currenttime[h] \par
\currenttime[m] \par
\currenttime[h,{\,h\,},m] \par
\stoptext

Donne :
17:07
17
07
17 h 07

Attention \currenttime[h,{h},m] ne marche pas.