Médycs : Incidence – FORMAT

Pratique de la commande FORMAT en langage d’Incidence

FORMAT, permet la “Mise en Forme” d’une date ou d’un nombre
SYNTAXEFORMAT et les DatesFORMAT et les Nombres
L’Incidence étant un langage utilisant des Variables Variantes (c’est à dire non Typées), la mise en forme des Nombres assure également leur conversion implicite (par exemple conversion d’un nombre réel en entier)
FORMAT admet 2 Syntaxes et 2 Paramètres
FORMAT( VARIABLE ; FORMAT )

Syntaxe alternative : 
FMT (VARIABLE ; FORMAT )
  1. VARIABLE : est la Date ou le Nombre à mettre en forme
  2. FORMAT : est le gabarit d’affichage de la VARIABLE sous la forme d’une chaine en chinois
Alors que Médycs utilise un Gabarit pour ses dates conforme à l’usage par d’autres langages évolués , ce qui le rend puissant et facile à utiliser Il utilise un gabarit simplifié pour ses Nombres , qui le rend plus ou moins simple à comprendre et plus ou mois simple à utiliser, d’où la nécessité de cette mise au point.
La mise en forme des date se passe de commentaire tant elle est conforme à l’usage
FORMAT ( DATE ; "j m a h:n")

On peut utiliser la double orthographe Anglaise ou Française Jour = J ou D (Day)

VALEUR FRANÇAIS ANGLAIS EXEMPLE
JOUR/DAY j d 1=1, 10 = 10
jj dd 1=01,10=10
jjj

 

ddd Lundi = Lun.
jjjj dddd Lundi = Lundi
MOIS/MONTH m m 1
mm mm 01
mmm mmm Jan
mmmm mmmm Janvier
ANNEE/YEAR aa aa 17
aaaa aaaa 2017
HEURE/HOUR h h 1
hh hh 01
MINUTE n n 1
(n car m est pris par les mois) nn nn 01
Exemples

Date court

@@_DATE := AUJOURDHUI()

@@_ := FORMAT( {V:_DATE} ; "jj/mm/aaaaa")
01/04/2017

Date Long

@@_DATE := MAINTENANT()

@@_ := FORMAT( {V:_DATE} ; "jjjj le j mmmm aaaaa à hh:nn")
Vendredi le 1 Avril 2017 à 20:22

Voir Aussi : l’opérateur ¤ de format des dates

Médycs a simplifié la Mise en forme des nombres, en limitant ses opérateurs de FORMAT à 4
FORMAT ( NOMBRE; %.,0)

Opérateurs

Opérateur Signification
% Un ou plusieurs chiffres ou Rien si commence ou finit par 0
0 Un ou plusieurs chiffres ou 0 si Rien devant ou derrière
. Séparateur décimal entre l’entier et la fraction
, Séparateur des milliers
# Peut remplacer le %

Les Symboles 0 et % remplacent les chiffres :

  • Contrairement à l’usage on conseille d’utiliser préférentiellement le symbole 0 à la place d’un chiffre ou d’un nombre
    • Car il fait quasiment la même chose que % et rajoute automatiquement un 0 si l’entier est Nul (ce qui est logique)
  • En pratique :
COMMANDE RESULTAT COMMENTAIRE
FORMAT( 1/2 ; 0.0 ) 0,5 ce qui est clair et intuitif, on dit “Zéro virgule cinq”
FORMAT(1/2 ; %.% ) ,5 ce qui est assez obscur

Signification de 0 et %

  • Ces 2 opérateurs ont une signification différente selon qu’ils sont à GAUCHE ou à DROITE de la virgule
LOCALISATION DÉFINITION UTILISATION
A GAUCHE C’est la partie ENTIÈRE du nombre
  1. % ou # désignent un ou plusieurs Chiffres, si l’entier est nul, la valeur de l’entier à gauche de la virgule reste vide.
    • Il est inutile de multiplier les symboles % pour un nombre de plusieurs chiffres,
      Qu’il y ait 1 ou 20 chiffres 1 seul % est suffisant, puisque par définition % ne met rien ou il n’y a rien
    • Il est tout à fait équivalent à l’opérateur générique Windows * (*** n’apporte rien de plus que *)
    • Seule l’utilisation conjointe du formatage des milliers (virgule)  justifie le double symbole %%
      • format(1000000; %,%) => donne => “1 000 000”
  2. 0 Désigne un ou plusieurs Chiffres, si l’entier est nul, il prend la valeur 0
    • Contrairement à %, le nombre de 0 précise exactement le nombre de 0 qu’il faut placer devant un chiffre trop court
    • format(1 ;  000) => me donne 001 !
    • par contre format(1234; 000 ) => me donne 1234 et pas 234 (la commande format ne permet donc jamais de raccourcir un Nombre.)
A DROITE C’est la partie DÉCIMALE du nombre
  1. FORMAT agit sur la partie décimale comme elle agit sur l’entier, à la différence que cette fois , le Nombre de symboles de format définit la précision décimale
  2. % n’affiche la précision que si le nombre de chiffres derrière la virgule existe dans le nombre
    • format( 123.456 ; 0.%% ) affiche => 123,46
      • .456 est arrondi à 2 décimale soit .46)
    • format( 123.4 ; 0.%% ) affiche => 123,4
      • Comme il n’y a rien en seconde décimale %% n’en affiche qu’une
  3. 0 affiche toujours le nombre de décimales demandées, si elles n’existe pas, elles sont remplacées par des 0
    • format( 123.456 ; 0.00 ) affiche => 123,46
      • .456 est arrondi à 2 décimale soit .46)
    • format( 123.4 ; 0.00 ) affiche => 123,40
      • Utile pour un format monétaire qui affiche toujours les centimes même s’ils sont nuls.
Exemples

ENTIER = %.

@@_NOMBRE := 123,456

@@_ := FORMAT( {V:_NOMBRE} ; "%.")
123

RÉEL A 2 DÉCIMALES = %.%%

@@_NOMBRE := 123,456

@@_ := FORMAT( {V:_NOMBRE} ; "%.%%")
123,45

COMMENCE TOUJOURS PAR ZERO

@@_NOMBRE := 10/2

@@_ := FORMAT( {V:_NOMBRE} ; "0%.%"
0,5

ENTIER > 999

@@_NOMBRE := 10000,45

@@_ := FORMAT( {V:_NOMBRE} ; "%,%."
10 000

 

 

Laisser un commentaire