Delphi แปลงเลขอาราบิก ---> เป็นเลขไทย

Display Thai date format.


unit AwArabic2Thai;

interface

uses System.SysUtils, System.Classes, fs_iinterpreter;

const
  DecimalTH: array [0 .. 9] of string = ('๐', '๑', '๒', '๓', '๔', '๕', '๖', '๗',
    '๘', '๙');

  MonthTH: array [1 .. 12] of string = ('มกราคม ', 'กุมภาพันธ์',
    'มีนาคม', 'เมษายน',

    'พฤษภาคม', 'มิถุนายน', 'กรกฎาคม', 'สิงหาคม',

    'กันยายน', 'ตุลาคม', 'พฤศจิกายน', 'ธันวาคม');

  ShortMonthTH: array [1 .. 12] of string = ('ม.ค.', 'ก.พ.', 'มี.ค.', 'เม.ย.',

    'พ.ค. ', 'มิ.ย.', 'ก.ค.', 'ส.ค.',

    'ก.ย.', 'ต.ค.', 'พ.ย. ', 'ธ.ค.');



function DisplayShortDateFormatTH(const ADate: TDate): String;
function DisplayLongDateFormatTH(const ADate: TDate): String;
function ConvertArabicNum2ThaiNum(const ANumber: Word): string;

implementation

function ConvertArabicNum2ThaiNum(const ANumber: Word): string;
var
  Str_Int: string;
  i: Byte;
begin
  Result := '';
  Str_Int := IntToStr(ANumber);
  for i := 1 to Length(IntToStr(ANumber)) do
  begin
    Result := Result + DecimalTH[strtoint(Str_Int[i])];
  end;
end;

function DisplayLongDateFormatTH(const ADate: TDate): String;
var
  fYear, fMonth, fDay: Word;
begin
  DecodeDate(ADate, fYear, fMonth, fDay);
  Result := ConvertArabicNum2ThaiNum(fDay) + ' ' + MonthTH[fMonth] + ' ' +
    ConvertArabicNum2ThaiNum(fYear + 543);
end;

function DisplayShortDateFormatTH(const ADate: TDate): String;
var
  fYear, fMonth, fDay: Word;
begin
  DecodeDate(ADate, fYear, fMonth, fDay);
  Result := ConvertArabicNum2ThaiNum(fDay) + ' ' + ShortMonthTH[fMonth] + ' ' +
    ConvertArabicNum2ThaiNum(fYear + 543);
end;

end.


//Sample

procedure TForm1.FormCreate(Sender: TObject);
begin
  JvNavPanelHeader1.Caption := DisplayLongDateFormatTH(Date);
  JvNavPanelHeader2.Caption := DisplayShortDateFormatTH(Date);
end;

Comments