Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DATE EN ARABE


Information sur la source

Description

C'est un petit programme qui convertit la date du jour en langue Arabe.
La fonction intégrée convertit les jours de semaine ainsi que les mois en Arabe, le numéro du jour et l'année sont gardés tels quels.
 

Source

  • unit Unit1;
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, StdCtrls, ComCtrls;
  • type
  • TForm1 = class(TForm)
  • Label1: TLabel;
  • Button1: TButton;
  • Label2: TLabel;
  • procedure Button1Click(Sender: TObject);
  • private
  • { Déclarations privées }
  • public
  • { Déclarations publiques }
  • end;
  • var
  • Form1: TForm1;
  • implementation
  • {$R *.dfm}
  • function MoisEnArabe(moi: word): string;
  • var MLA:string;
  • begin //donner les mois en Arabe de janvier à décembre dans le même ordre
  • case moi of
  • 1:MLA :='ÌÇäÝí' ; 7 :MLA :='ÌæíáíÉ' ;
  • 2:MLA :='ÝíÝÑí' ; 8 :MLA :='ÃæÊ' ;
  • 3:MLA :='ãÇÑÓ' ; 9 :MLA :='ÓÈÊãÈÑ' ;
  • 4:MLA :='ÃÝÑíá' ; 10:MLA :='ÃßÊæÈÑ' ;
  • 5:MLA :='ãÇí' ; 11:MLA :='äæÝãÈÑ' ;
  • 6:MLA :='ÌæÇä' ; 12:MLA :='ÏíÓãÈÑ' ;
  • end;// case
  • Result:= MLA ;
  • end;
  • function JourEnArabe(j: word): string;
  • var JLA:string;
  • days: array[1..7] of string;
  • begin // donner les jours en Arabe
  • days[1] := 'ÇáÃÍÏ'; //dimanche
  • days[2] := 'ÇáÇËäíä'; // lundi
  • days[3] := 'ÇáËáÇËÇÁ'; // mardi
  • days[4] := 'ÇáÃÑÈÚÇÁ'; // mercredi
  • days[5] := 'ÇáÎãíÓ'; // jeudi
  • days[6] := 'ÇáÌãÚÉ'; // vendredi
  • days[7] := 'ÇáÓÈÊ'; // samedi
  • JLA:=days[DayOfWeek(date)] ;
  • Result:= JLA ;
  • end;
  • function DateEnArabe():string;
  • var annee,mois,jour :word;
  • begin
  • DecodeDate(Date,annee,mois,jour);// decoder la date du jour
  • DateEnArabe:='íæã '+JourEnArabe(jour)+' '+inttostr(jour)+' '+MoisEnArabe(mois)+' '+inttostr(annee);
  • // DateEnArabe reçoit la date jour en Arabe
  • end;
  • procedure TForm1.Button1Click(Sender: TObject);
  • begin
  • label1.Caption:=DateEnArabe;
  • end;
  • end.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function  MoisEnArabe(moi: word): string;
 var MLA:string;
begin //donner les mois en Arabe de janvier à décembre dans le même ordre
  case moi of
  1:MLA :='ÌÇäÝí'  ;               7 :MLA :='ÌæíáíÉ'  ;
  2:MLA :='ÝíÝÑí'  ;               8 :MLA :='ÃæÊ'     ;
  3:MLA :='ãÇÑÓ'   ;               9 :MLA :='ÓÈÊãÈÑ'  ;
  4:MLA :='ÃÝÑíá'  ;               10:MLA :='ÃßÊæÈÑ'  ;
  5:MLA :='ãÇí'    ;               11:MLA :='äæÝãÈÑ'  ;
  6:MLA :='ÌæÇä'   ;               12:MLA :='ÏíÓãÈÑ'  ;
  end;//  case
 Result:= MLA ;
end;
function  JourEnArabe(j: word): string;
 var JLA:string;
     days: array[1..7] of string;
begin // donner les jours en Arabe
  days[1] := 'ÇáÃÍÏ'; //dimanche
  days[2] := 'ÇáÇËäíä';  // lundi
  days[3] := 'ÇáËáÇËÇÁ'; // mardi
  days[4] := 'ÇáÃÑÈÚÇÁ'; // mercredi
  days[5] := 'ÇáÎãíÓ';   // jeudi
  days[6] := 'ÇáÌãÚÉ';   // vendredi
  days[7] := 'ÇáÓÈÊ';    // samedi
  JLA:=days[DayOfWeek(date)] ;
  Result:= JLA ;
end;
function DateEnArabe():string;
var annee,mois,jour :word;
begin
DecodeDate(Date,annee,mois,jour);// decoder la date du jour
DateEnArabe:='íæã  '+JourEnArabe(jour)+' '+inttostr(jour)+' '+MoisEnArabe(mois)+' '+inttostr(annee);
// DateEnArabe reçoit la date jour en Arabe
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 label1.Caption:=DateEnArabe;
end;

end.

Conclusion

Pour avoir le résultat en bonne et due forme vous devez au préalable ajouter la langue Arabe.
Par exemple Arabe Algérie.

 

Commentaires et avis

signaler à un administrateur
Commentaire de nethacker le 16/01/2008 12:33:42

Une impression serait la bienvenbue SVP !

signaler à un administrateur
Commentaire de sky7rip le 16/01/2008 13:30:26

Que dire? A part que c'est un source qui ne s'adresse qu'aux personnes parlant l'Arabe... Personnellement je n'ai même pas les caratères intallés sur mon pindoze et je sais que je n'en aurai pas l'utilité. Quand au source son intérêt est limité par lui même, c'est un code simple et déjà vu plusieurs fois pour le Français.

Quelques idées : pourquoi ne pas faire tout le traitement dans une seule et même fonction au lieu de trois ?

Ah oui ici :
JLA:=days[DayOfWeek(date)] ;
Result:= JLA ;

Pourquoi tu ne fais pas :
Result := days[DayOfWeek(date)] ;

Ca fait une petite variable en moins.
Et renommes tes composants tu t'en sortira mieux ;) .

Sky.

signaler à un administrateur
Commentaire de HAFTARIFOUAD le 16/01/2008 16:59:21

Bonjour Mosieur AITFRAH1

trés bon votre exemple, rien à dire que de vous souhaiter bonne continuation.

signaler à un administrateur
Commentaire de Delphiprog le 16/01/2008 21:03:22 administrateur CS

Tout comme Sky7rip, je pencherais pour affecter result directement au lieu de passer par une variable intermédiaire. Mais c'est sans importance sur les performances ici.
En revanche, là où je ne suis pas d'accord avec lui, c'est sur le fait de fusionner les trois fonctions en une seule. En effet, on peut avoir besoin d'une, de deux ou des trois fonctions à un moment ou à un autre au cours de l'exécution.
Le code est clair et bien traduit (:)).

Suggestion : pour que le code soit encore plus facilement réutilisable, je pense que serait une bonne idée de pouvoir transmettre une date quelconque à la fonction DateEnArabe au lieu de toujours renvoyer la date courante.

signaler à un administrateur
Commentaire de Loda le 17/01/2008 09:05:50

salut,

merci pour ta contribution.

je me permet un conseil:

Pour MoisEnArabe met les strings de conversion dans un tableau (comme tu l'as fait pour JourEnArabe), mais met le tableau en dehors de la fonction.
comme ça, tu peux les mettre à jour si nécessaire ou les utiliser pour faire des boucles (en-tête, ...)
Cela t'évitera de RE-initialiser les tableaux à chaque appel.

bon code,

Loda

signaler à un administrateur
Commentaire de Caribensila le 19/01/2008 02:49:28

Salut,

Voir aussi, car c'est pas mal
:
http://www.delphifr.com/codes/CONVERSION-DATE-ARABE_12457.aspx

signaler à un administrateur
Commentaire de kovax1 le 14/07/2008 12:32:50

salut
je crois que le grand prob pour les date en arabe c que le premier jour c pas le samedi sous windows alors
pour le calendrier c facile

voici un code pour vous sérvir...
alors, si dimanche est le premier jour
SetLocaleInfo(LOCALE_SYSTEM_DEFAULT,LOCALE_IFIRSTDAYOFWEEK,'5');

mais .....a la prochaine

signaler à un administrateur
Commentaire de kaleeeed le 07/02/2009 09:19:49

Merci Mon frere , j'ai une question
pourquoi les lettre arabe sont illisible ds delphi ,
'ÇáÃÍÏ' il se voie comme ça , ou bien comme ça ?????
je n'arrive pas à ecrire en arabe ds delphi
qlq un à une idée , svp aidez moi,
Merci d'avance.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

convertir chiffres romains en nombre arabe [ par skinpo ] Bonjour je suis totalement débutant en pascal j'utilise delphi 7 et j'ai reçu pour exercice de trouver et d'analyser les étapes d'un petit code simpl Convertir le quantième an Date dd/mm/aaaa [ par Bay_Pierre ] Salut, je travaille sur un petit projet où je dois convertir des quantièmes en date ordinaire. Par exemple le nombre 279 peut être converti en date du Utilisation de TimeStamp [ par guilhemrostain ] Bonjour,j'ai un champ de ma base de donnée nommé Timestamp qui est de type Entier long sur 10 chiffres (ex : 1052990591).J'ai besoin d'extraire ce cha convertir un date [ par alex_lecool85 ] existe t-il une fonction qui converti une date au format jj/mm/aaaa eu format mm/jj/aaaa? merci de vos reponce. Violation de clé ??????????????? [ par kasdo ] salut;j'ai un dbgrid que j'utilise avec une DB ,,, mes problemes sont :- je veux faire un champ DATE , qui fais la saisi automatique de la date du jou jointure sql !! [ par kasdo ] salut ,bon j'ai 2 table entree ( date,client,e/s,type,p.u,qte,totale,memo)sortie( date,type,e/s,p.u,qte,total,memo)jai envie de faire un dbgrid qui m' problème avec le contrôle calendrier "date time picker" [ par informatixo ] Toujours dans mon logiciel de gestion des stocks ! (lol). A un moment j'ai une feuille de saisie pour entrer des éléments en stock ou en sor Comparer des heures [ par piep14 ] Bonjour a tous, voici mon problème : Je souhaite comparer deux dates au format : YYYY-MM-JJ HH:MM:SS Si la date actuelle est égale a la da Demade d'aide [ par AITFRAH1 ] Bonjour à toute l’équipe ; Au début je vous félicite et je vous souhaite bon courage dans le travail que vous faites. Pe Convertir une IP du style abcd.redirect-me.net en 742.484.173.12 [ par sim4444 ] Bonjour à tous,j'aimerais savoir comment on fait pour convertir une IP en format de ce genre : abcd.redirect-me.net en la vrai IP. J'ai cherch&#2


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,749 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.