Date en arabe

0/5 (7 avis)

Snippet vu 25 276 fois - Téléchargée 20 fois

Contenu du snippet

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 / Exemple :


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.

A voir également

Ajouter un commentaire Commentaires
kaleeeed Messages postés 6 Date d'inscription mardi 21 août 2007 Statut Membre Dernière intervention 7 février 2009
7 févr. 2009 à 09:19
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.
kovax1 Messages postés 3 Date d'inscription jeudi 13 décembre 2007 Statut Membre Dernière intervention 4 avril 2013
14 juil. 2008 à 12:32
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
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
17 janv. 2008 à 09:05
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
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
16 janv. 2008 à 21:03
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.
HAFTARIFOUAD Messages postés 256 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 6 janvier 2011
16 janv. 2008 à 16:59
Bonjour Mosieur AITFRAH1

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.