Date en arabe

Soyez le premier à donner votre avis sur cette source.

Snippet vu 24 211 fois - Téléchargée 18 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

Messages postés
6
Date d'inscription
mardi 21 août 2007
Statut
Membre
Dernière intervention
7 février 2009

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.
Messages postés
3
Date d'inscription
jeudi 13 décembre 2007
Statut
Membre
Dernière intervention
4 avril 2013

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
Messages postés
814
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
30 juillet 2009
3
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
Messages postés
4580
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
27
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.
Messages postés
256
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
6 janvier 2011

Bonjour Mosieur AITFRAH1

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

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.