begin process at 2010 02 10 10:05:46
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > TRADUIRE UNE DATE EN TEXTE

TRADUIRE UNE DATE EN TEXTE


 Information sur la source

Note :
1,5 / 10 - par 2 personnes
1,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Niveau :Débutant Date de création :23/04/2003 Date de mise à jour :23/04/2003 21:56:01 Vu :2 261

Auteur : Airbgat

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Ce code traduire toutes les dates valides entre 1995 et 2005 saisies jj mm aaaa et les restituent en texte.

Source

  • program LIREDATE;
  • uses
  • Forms;
  • VAR date : STRING[10];
  • jour : STRING[2];
  • mois : STRING[2];
  • annee : STRING[4];
  • transa, transm, transj : string;
  • begin
  • WRITELN('inscrivez la date a convertir sous forme jj mm aaaa');
  • READLN (date);
  • jour :=COPY(date,1,2);
  • mois :=COPY(date,4,5);
  • annee :=COPY(date,7,8);
  • Begin{traduction de l'annee}
  • IF annee = '1995' then
  • transa := 'mille neuf cent quatre-vingt quinze'
  • ELSE
  • IF annee = '1996' then
  • transa := 'mille neuf cent quatre-vingt seize'
  • ELSE
  • IF annee = '1997' then
  • transa := 'mille neuf cent quatre-vingt dix-sept'
  • ELSE
  • IF annee = '1998' then
  • transa := 'mille neuf cent quatre-vingt dix-huit'
  • ELSE
  • IF annee = '1999' then
  • transa := 'mille neuf cent quatre-vingt dix-neuf'
  • ELSE
  • IF annee = '2000' then
  • transa := 'deux mille'
  • ELSE
  • IF annee = '2001' then
  • transa := 'deux mille un'
  • ELSE
  • IF annee = '2002' then
  • transa := 'deux mille deux'
  • ELSE
  • IF annee = '2003' then
  • transa := 'deux mille trois'
  • ELSE
  • IF annee = '2004' then
  • transa := 'deux mille quatre'
  • ELSE
  • IF annee = '2005' then
  • transa := 'deux mille cinq'
  • ELSE writeln('l''annee est incorrecte');
  • End;{fin de la traduction de l'annee}
  • Begin{traduction du mois}
  • IF mois = '01' then
  • transm := 'janvier'
  • ELSE
  • IF mois = '02' then
  • transm := 'fevrier'
  • ELSE
  • IF mois = '03' then
  • transm := 'mars'
  • ELSE
  • IF mois = '04' then
  • transm := 'avril'
  • ELSE
  • IF mois = '05' then
  • transm := 'mai'
  • ELSE
  • IF mois = '06' then
  • transm := 'juin'
  • ELSE
  • IF mois = '07' then
  • transm := 'juillet'
  • ELSE
  • IF mois = '08' then
  • transm := 'aout'
  • ELSE
  • IF mois = '09' then
  • transm := 'septembre'
  • ELSE
  • IF mois = '10' then
  • transm := 'octobre'
  • ELSE
  • IF mois = '11' then
  • transm := 'novembre'
  • ELSE
  • IF mois = '12' then
  • transm := 'decembre'
  • ELSE writeln('le mois est incorrect');
  • end;{fin de la traduction du mois}
  • Begin
  • IF jour = '01' then
  • transj := 'premier'
  • ELSE
  • IF jour = '02' then
  • transj := 'deux'
  • ELSE
  • IF jour = '03' then
  • transj := 'trois'
  • ELSE
  • IF jour = '04' then
  • transj := 'quatre'
  • ELSE
  • IF jour = '05' then
  • transj := 'cinq'
  • ELSE
  • IF jour = '06' then
  • transj := 'six'
  • ELSE
  • IF jour = '07' then
  • transj := 'sept'
  • ELSE
  • IF jour = '08' then
  • transj := 'huit'
  • ELSE
  • IF jour = '09' then
  • transj := 'neuf'
  • ELSE
  • IF jour = '10' then
  • transj := 'dix'
  • ELSE
  • IF jour = '11' then
  • transj := 'onze'
  • ELSE
  • IF jour = '12' then
  • transj := 'douze'
  • ELSE
  • IF jour = '13' then
  • transj := 'treize'
  • ELSE
  • IF jour = '14' then
  • transj := 'quatorze'
  • ELSE
  • IF jour = '15' then
  • transj := 'quinze'
  • ELSE
  • IF jour = '16' then
  • transj := 'seize'
  • ELSE
  • IF jour = '17' then
  • transj := 'diz-sept'
  • ELSE
  • IF jour = '18' then
  • transj := 'dix-huit'
  • ELSE
  • IF jour = '19' then
  • transj := 'dix-neuf'
  • ELSE
  • IF jour = '20' then
  • transj := 'vingt'
  • ELSE
  • IF jour = '21' then
  • transj := 'vingt et un'
  • ELSE
  • IF jour = '22' then
  • transj := 'vingt-deux'
  • ELSE
  • IF jour = '23' then
  • transj := 'vingt-trois'
  • ELSE
  • IF jour = '24' then
  • transj := 'vingt-quatre'
  • ELSE
  • IF jour = '25' then
  • transj := 'vingt-cinq'
  • ELSE
  • IF jour = '26' then
  • transj := 'vingt-six'
  • ELSE
  • IF jour = '27' then
  • transj := 'vingt-sept'
  • ELSE
  • IF jour = '28' then
  • transj := 'vingt-huit'
  • ELSE{Prb annee bisextille}
  • IF jour = '29' then
  • IF mois = '02' then
  • IF annee = '1996' then
  • transj :='vingt-neuf'
  • else if annee = '2000' then
  • transj :='vingt-neuf'
  • else if annee = '2004' then
  • transj :='vingt-neuf'
  • else writeln('le jour est incorrect')
  • else transj :='vingt-neuf'
  • ELSE
  • IF jour = '30' then
  • IF mois = '02' then
  • writeln ('le jour est incorrect')
  • Else transj := 'trente'
  • ELSE{Prb mois a 31 jours}
  • IF jour = '31' then
  • IF mois = '02' then
  • Writeln('le jour est incorrect')
  • Else if mois = '04' then
  • Writeln('le jour est incorrect')
  • Else if mois = '06' then
  • Writeln('le jour est incorrect')
  • Else if mois = '09' then
  • Writeln('le jour est incorrect')
  • Else if mois = '11' then
  • Writeln('le jour est incorrect')
  • Else transj :='trente et un'
  • ELSE writeln('le jour est incorrect');
  • end;{fin de la traduction du mois}
  • WRITELN (transj, ' ', transm, ' ', transa);
  • Readln;
  • end.
program LIREDATE;

uses
  Forms;

VAR  date : STRING[10];
      jour : STRING[2];
      mois : STRING[2];
      annee : STRING[4];
      transa, transm, transj : string;
begin
  WRITELN('inscrivez la date a convertir sous forme jj mm aaaa');
  READLN (date);
  jour :=COPY(date,1,2);
  mois :=COPY(date,4,5);
  annee :=COPY(date,7,8);
  Begin{traduction de l'annee}

  IF annee = '1995' then
  transa := 'mille neuf cent quatre-vingt quinze'
  ELSE
    IF annee = '1996' then
    transa := 'mille neuf cent quatre-vingt seize'
  ELSE
    IF annee = '1997' then
    transa := 'mille neuf cent quatre-vingt dix-sept'
  ELSE
    IF annee = '1998' then
    transa := 'mille neuf cent quatre-vingt dix-huit'
  ELSE
    IF annee = '1999' then
    transa := 'mille neuf cent quatre-vingt dix-neuf'
  ELSE
    IF annee = '2000' then
    transa := 'deux mille'
  ELSE
    IF annee = '2001' then
    transa := 'deux mille un'
  ELSE
    IF annee = '2002' then
    transa := 'deux mille deux'
  ELSE
    IF annee = '2003' then
    transa := 'deux mille trois'
  ELSE
    IF annee = '2004' then
    transa := 'deux mille quatre'
  ELSE
    IF annee = '2005' then
    transa := 'deux mille cinq'
  ELSE writeln('l''annee est incorrecte');
  End;{fin de la traduction de l'annee}

  Begin{traduction du mois}
  IF mois = '01' then
  transm := 'janvier'
  ELSE
    IF mois = '02' then
    transm := 'fevrier'
  ELSE
    IF mois = '03' then
    transm := 'mars'
  ELSE
    IF mois = '04' then
    transm := 'avril'
  ELSE
    IF mois = '05' then
    transm := 'mai'
  ELSE
    IF mois = '06' then
    transm := 'juin'
  ELSE
    IF mois = '07' then
    transm := 'juillet'
  ELSE
    IF mois = '08' then
    transm := 'aout'
  ELSE
    IF mois = '09' then
    transm := 'septembre'
  ELSE
    IF mois = '10' then
    transm := 'octobre'
  ELSE
    IF mois = '11' then
    transm := 'novembre'
  ELSE
    IF mois = '12' then
    transm := 'decembre'
  ELSE writeln('le mois est incorrect');
  end;{fin de la traduction du mois}

  Begin
  IF jour = '01' then
  transj := 'premier'
  ELSE
    IF jour = '02' then
    transj := 'deux'
  ELSE
    IF jour = '03' then
    transj := 'trois'
  ELSE
    IF jour = '04' then
    transj := 'quatre'
  ELSE
    IF jour = '05' then
    transj := 'cinq'
  ELSE
    IF jour = '06' then
    transj := 'six'
  ELSE
    IF jour = '07' then
    transj := 'sept'
  ELSE
    IF jour = '08' then
    transj := 'huit'
  ELSE
    IF jour = '09' then
    transj := 'neuf'
  ELSE
    IF jour = '10' then
    transj := 'dix'
  ELSE
    IF jour = '11' then
    transj := 'onze'
  ELSE
    IF jour = '12' then
    transj := 'douze'
  ELSE
    IF jour = '13' then
    transj := 'treize'
  ELSE
    IF jour = '14' then
    transj := 'quatorze'
  ELSE
    IF jour = '15' then
    transj := 'quinze'
  ELSE
    IF jour = '16' then
    transj := 'seize'
  ELSE
    IF jour = '17' then
    transj := 'diz-sept'
  ELSE
    IF jour = '18' then
    transj := 'dix-huit'
  ELSE
    IF jour = '19' then
    transj := 'dix-neuf'
  ELSE
    IF jour = '20' then
    transj := 'vingt'
  ELSE
    IF jour = '21' then
    transj := 'vingt et un'
  ELSE
    IF jour = '22' then
    transj := 'vingt-deux'
  ELSE
    IF jour = '23' then
    transj := 'vingt-trois'
  ELSE
    IF jour = '24' then
    transj := 'vingt-quatre'
 ELSE
    IF jour = '25' then
    transj := 'vingt-cinq'
 ELSE
    IF jour = '26' then
    transj := 'vingt-six'
 ELSE
    IF jour = '27' then
    transj := 'vingt-sept'
 ELSE
    IF jour = '28' then
    transj := 'vingt-huit'
 ELSE{Prb annee bisextille}
   IF jour = '29' then
      IF mois = '02' then
        IF annee = '1996' then
        transj :='vingt-neuf'
        else if annee = '2000' then
        transj :='vingt-neuf'
        else if annee = '2004' then
        transj :='vingt-neuf'
        else writeln('le jour est incorrect')
    else transj :='vingt-neuf'
 ELSE
  IF jour = '30' then
    IF mois = '02' then
    writeln ('le jour est incorrect')
    Else transj := 'trente'
 ELSE{Prb mois a 31 jours}
  IF jour = '31' then
    IF mois = '02' then
    Writeln('le jour est incorrect')
    Else if mois = '04' then
    Writeln('le jour est incorrect')
    Else if mois = '06' then
    Writeln('le jour est incorrect')
    Else if mois = '09' then
    Writeln('le jour est incorrect')
    Else if mois = '11' then
    Writeln('le jour est incorrect')
    Else transj :='trente et un'
  ELSE writeln('le jour est incorrect');
  end;{fin de la traduction du mois}
  WRITELN (transj, ' ', transm, ' ', transa);
  Readln;
  end.

 Conclusion

C'est une vraie usine a gaz mais c'est de mon niveau


 Sources du même auteur

AFFICHE LES SEQUENCES D'HEURES D'UNE JOURNEE

 Sources de la même categorie

Source avec Zip NEXTGENS -> UNITÉS DE TYPES ÉVOLUÉS NOUVELLE GÉNÉRATION (DE... par f0xi
Source avec Zip Source avec une capture AUTO-COMPLÉTION D'UN CONTRÔLE DE SAISIE par Bacterius
Source avec Zip CARDS GAME SDK 1.0.0.0 par f0xi
Source avec Zip Source avec une capture TRAYICON - VOTRE ICONE DANS LA BARRE DES TACHES par Bacterius
Source avec Zip Source avec une capture WINHIDER _ CACHER UN PROGRAMME DE L'ÉCRAN ET DE LA BARRE DE ... par soldier8514

Commentaires et avis

Commentaire de magicvinni le 24/04/2003 09:55:54

Ca marche, mais dommage que tu n'utilises pas les fonctionnalités de Delphi: Afficher des messages, saisir la date dansun edit...Quelles version utilises tu?

Commentaire de stefdeus le 30/04/2003 00:16:33

Et aussi utiliser du "case of" plutot que des "if" dans tous les sens

Commentaire de cbonus2000 le 02/05/2003 03:31:13

Salut,

pour simplifier ton code, il y aurait peut-être un petit truc a faire.
En entête te déclarer deux constantes de tableau de type string dans lequel tu initialises tes mois et tes jours comme suit:

const Tbl_Jour: array[1..6] of String = ('Un', 'Deux', 'Trois', 'Quatre', 'Cinq', 'Six');

const Tbl_Mois: array[1..6] of String = ('Janvier', 'Fevrier', 'Mars', 'Avril', 'Mai', 'Juin');

Je ne l'ai pas fais pour tous les mois et jours, ceci est seulement un exemple..

Par la suite, tu prends ton chiffre indiquant le jour et tu le converti en integer pour pouvoir aller chercher la bonne position dans le tableau.

var Jour :Integer;

Jour := StrToInt(COPY(date,1,2)); //tu peux plugger la fonction directement entre les crochet du tableau [] comme j'ai fais pour le mois.

Et tu utilise ce chiffre pour aller chercher la valeur string dans le tableau à la position du chiffre.

ShowMessage(Tbl_Jour[Jour] + '    ' + Tbl_mois[StrToInt(COPY(date,4,5))]);

Il devrais afficher la valeur du tableau en position Jour, ainsi qu'un espace et le mois.

Il est aussi possible de rendre l'année plus générique, mais j'ai pas le gout de tout me tapper cà ce soir. Vive la paresse. Cependant, je crois que sa donne une petite idée pour simplifier le code au niveau des mois et des jours.
______
Patrick

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,014 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales