تحويل التاريخ الى سلسلة حرفية
#1
السلام عليكم
كيف تحويل التاريخ الى جملة مثل التاريخ 01/02/2015
يكتبه هكذا 'اليوم الأول من شهر فيفري عام الفين وخمسة عشر'
الرد
#2
[INDENT]
وعليكم السلام ورحمة الله وبركاته ،
أولا ، أهلا وسهلا بك بيننا مفيدا و مستفيدا Cool

بالنسبة لسؤالك فهو ينقسم إلى قسمين :
1- تقسيم التاريخ إلى سنة وشهر و يوم ،
في هذه الحالة استخدم الدالة DecodeDate

يمكنك مشاهدة المواضيع التالية :
التعامل مع التواريخ (الدالة التي يغفل عنها الكثير)

حساب العمر بالسنة بدلفي

وغيرها ....
2- القسم الثاني من سؤالك هو تحويل الأرقام إلى حروف و هو ما يسمى بالتفقيط يمكنك مشهادة الروابط التالية :

حول استعمال التاريخ
برنامج تفقيط لتحويل الأرقام إلى حروف عربية
وفقك الله لكل خير.
[/INDENT]
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#3
السلام عليكم بالاعتماد على الوحدة المقدمة من طرف العضو مهدي بارك الله فيه (مع بعض التعديلات)
PHP كود :
unit Unit1;

interface

uses
  Winapi
.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 
= class(TForm)
    
Button1: TButton;
    
procedure Button1Click(Sender: TObject);
  private
    function 
Day(ADay: Byte): string;
    function 
Month(AMonth: Byte): string;
    function 
Chif (AChif: Byte) : String;
    function 
Centaine (i: integer) : String;
    function 
Millier (i: integer) : String;
    function 
Year(AYear: Integer): string;
  public
    { Public 
declarations }
  
end;

var
  
Form1: TForm1;

implementation

{$R *.dfm}


function 
TForm1.Day(ADay: Byte): string;
const
  
MyDays: array [0..30] of widestring =('اليوم الأول','اليوم الثاني','اليوم الثالث',
          
'اليوم الرابع','اليوم الخامس','اليوم السادس',
          
'اليوم السابع','اليوم الثامن','اليوم التاسع',
          
'اليوم العاشر','اليوم الحادي عشر','اليوم الثاني عشر',
          
'ليوم الثالث عشر','اليوم الرابع عشر','اليوم الخامس عشر',
          
'اليوم السادس عشر','اليوم السابع عشر','اليوم الثامن عشر',
          
'اليوم التاسع عشر','اليوم العشرون','اليوم الواحد و العشرون',
          
'اليوم الثاني و العشرون','اليوم الثالث و العشرون','اليوم الرابع و العشرون',
          
'ليوم الخامس و العشرون','اليوم السادس و العشرون','اليوم السابع و العشرون',
          
'اليوم الثامن و العشرون','اليوم التاسع و العشرون','اليوم الثلاثون',
          
'اليوم الواحد و الثلاثون');
begin
  Result 
:= MyDays[ADay - 1];
end;


function 
TForm1.Month(AMonth: Byte): string;
const
  
MyMonths: array [0..11] of string =('شهر جانفي','شهر فيفري','شهر مارس',
                                      
'شهر أفريل','شهر ماي','شهر جوان',
                                      
'شهر جويلية','شهر أوت','شهر سبتمبر',
                                      
'شهر أكتوبر','شهر نوفمبر','شهر ديسمبر');

begin
  Result 
:= MyMonths[AMonth - 1];
end;


function 
TForm1.Chif (AChif: Byte) : String;
const 
MyChif: array [0..100] of string = ('صفر','واحد','إثنان','ثلاث','أربع','خمس','ست','سبع','ثمان','تسع',
    
'عشرة','إحدى عشر','إثنا عشر','ثلاثة عشر','أربعة عشر','خمسة عشر','ستة عشر','سبعة عشر','ثمانية عشر',
    
'تسعة عشر','عشرون','واحد و عشرون','إثنان و عشرون','ثلاث و عشرون','أربع و غشرون','خمس و عشرون','ست و عشرون',
    
'سبع و عشرون','ثمان و عشرون','تسع  عشرون','ثلاثون','واحد و ثلاثون','إثنان و ثلاثون','ثلاث و ثلاثون','أربع و ثلاثون',
    
'خمس و ثلاثون','ست و ثلاثون','سبع و ثلاثون','ثمان و ثلاثون','تسع و ثلاثون','أربعون',
    
'واحد و أربعون','إثنان و أربعون','ثلاث و أربعون','أربع و أربعون','خمس و أربعون','ست و أربعون',
    
'سبع و أربعون','ثمان و أربعون','تسع و أربعون','خمسون','واحد و خمسون','إثنان و خمسون','ثلاث و خمسون','أربع و خمسون',
    
'خمس و خمسون','ست و خمسون','سبع و خمسون','ثمان و خمسون','تسع و خمسون','ستون','واحد و ستون',
    
'إثنان و ستون','ثلاث و ستون','أربع و ستون','خمس و ستون','ستون',
    
'سبع و ستون','ثمان و ستون','تسع و ستون','سبعون','واحد و سبعون','إثنان و سبعون','ثلاث و سبعون',
    
'أربع و سبعون','خمس و سبعون','ست و سبعون','سبع و سبعون','ثمان و سبعون','تسع و سبعون','ثمانون','واحد و ثمانون',
    
'إثنان و ثمانون','ثلاث و ثمانون','أربع و ثمانون','خمس و ثمانون','ست و ثمانون','سبع و ثمانون',
    
'ثمان و ثمانون','تسع و ثمانون','تسعون','واحد و تسعون','إثنان و تسعون','ثلاث و تسعون','أربع و تسعون',
    
'خمس و تسعون','تسعون','سبع و تسعون','ثمان و تسعون','تسع و تسعون',' مائة ');
begin
  Result 
:= MyChif[AChif];
end;

//  تم إنجاز البرنامج من طرف مهدي   عضو بمنتديات دلفي للعرب
         //  http://www.delphi4arab.com
    // الكود المصدري مجاني بشرط الإشارة للمصدر أعلاه

function TForm1.Centaine (i: integer) : String;
begin
  
case i of
    1..100
: Centaine:=chif(i);
    
101..199: Centaine:=' مائة و ' + Chif(i mod 100);
    
201..299: Centaine:=' مائتان و ' + Chif(i mod 100);
    
300..999:
    case (
i mod 100) of
      0
:  Centaine:=Chif(i div 100) + ' مائة و ';
      
1..99:  Centaine:=Chif(i div 100) + ' مائة و ' + Chif(i mod 100);
    
end;
  
end;
end;

function 
TForm1.Millier (i: integer) : String;
  
begin
  
case i of
    1..999
: Millier:=Centaine(i);
    
1000..999999:
    case (
i div 1000) of
      1
: Millier:=' ألف و '+ Centaine(i mod 1000);
      
2: Millier:=' ألفان و '+ Centaine(i mod 1000);
      
3..10:Millier:=Centaine(i div 1000)+' آلاف و '+ Centaine(i mod 1000);
      
11..999:Millier:=Centaine(i div 1000)+' ألف و '+ Centaine(i mod 1000);
    
end;
  
end;
end;

function 
TForm1.Year(AYear: Integer): string;
begin
  Result 
:= Millier(AYear);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  
d, m, y: Word;
begin
  DecodeDate
(Date, y, m ,d);

  
ShowMessage(Day(d) +' '+ Month(m) +' '+ Year(y));

end;


end. 
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#4
الف شكر لكما على الترحيب والافادة اخوتي Unprogramme... S.FATEH
جزاكم الله خيرا
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم