PDA

View Full Version : سوال: تبدیل متن به تاریخ



beginner_1395
شنبه 08 خرداد 1395, 01:31 صبح
من سه متغیر string دارم یکی روز و یکی ماه و یکی هم سال هستش
مثلا y=1362 m=2 d=5
حالا چطور اینا رو به date با فرمت YYYY/MM/DD تبدیل کنم
پیشاپیش ممنون:قلب:

Mahmood_M
شنبه 08 خرداد 1395, 02:12 صبح
با استفاده از تابع EncodeDate می تونید با دادن روز و ماه و سال خروجی TDate بگیرید :

var
Year, Month, Day : String;
MyDate : TDate;
begin
Year := '2016';
Month := '5';
Day := '28';

MyDate := EncodeDate(StrToInt(Year), StrToInt(Month), StrToInt(Day));
end;
اما دستورات کار با تاریخ و نوع Date در دلفی فقط برای تاریخ میلادی معتبر هستند
نمی تونید یک تاریخ شمسی از نوع Date داشته باشید، بلکه باید به صورت String باشه
برای ساخت یک رشته با فرمت تاریخ می تونید از تابع Format استفاده کنید :

var
Year, Month, Day : String;
MyDate : String;
begin
Year := '1395';
Month := '3';
Day := '8';

MyDate := Format('%.*d/%.*d/%.*d', [4, StrToInt(Year), 2, StrToInt(Month), 2, StrToInt(Day)]);

//MyDate = '1395/03/08'
end;
برای مدیریت بهتر تاریخ شمسی می تونید از کامپوننت ها و کتابخانه های موجود در رابطه با تاریخ شمسی استفاده کنید
چندین نمونه قبلا در سایت قرار داده شده، در بخش دلفی جستجو کنید