با سلام خدمت دوستان عزیز
در این آموزش قصد داریم تابع تبدیل تاریخ میلادی به تاریخ شمسی در دلفی رو برای شما عزیزان قرار بدیم.
این تابع از سایت برنامه نویس www.barnamenevis.org برداشته شده است و کاملا تست شده و بدون هیچ مشکلی کار میکند!
خب
مرحله اول یه Tlable روی فرمتون قرار بدین و اسمشو بذارین lbldate
مرحله بعد تابع زیر رو در قسمت کد برنامه تون قرار بدین:
Function MiladiToShamsi(var Year, Month, Day: Word): String;
const
count_days : array[1..12] of Byte = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var
i: Byte;
st: String;
day_year: Integer;
begin
day_year:= 0;
for i:= 1 to month - 1 do
day_year:= day_year + count_days[i];
day_year:= day_year + day;
if IsLeapYear(Year) and (month > 2) then
Inc(day_year);
if (day_year <= 79) then
begin
if ((Year - 1) mod 4 = 0) then
day_year:= day_year + 11
else
day_year:= day_year + 10;
Year:= Year - 622;
if (day_year mod 30 = 0) then
begin
Month:= (day_year div 30) + 9;
Day:= 30;
end
else
begin
Month:= (day_year div 30) + 10;
Day:= day_year mod 30;
end;
end
else
begin
year:= year - 621;
day_year:= day_year - 79;
if (day_year <= 186) then
begin
if (day_year mod 31 = 0) then
begin
Month:= (day_year div 31);
Day:= 31;
end
else
begin
Month:= (day_year div 31) + 1;
Day:= day_year mod 31;
end;
end
else
begin
day_year:= day_year - 186;
if (day_year mod 30 = 0) then
begin
Month:= (day_year div 30) + 6;
Day:= 30;
end
else
begin
Month:= (day_year div 30) + 7;
Day:= day_year mod 30;
end;
end;
end; // else .
st:= IntToStr(Year) + /;
if (Month < 10) then
st:= st + 0;
st:= st + IntToStr(Month) + /;
if (Day < 10) then
st:= st + 0;
st:= st + IntToStr(Day);
Result:= st;
end;
در مرحله بعدی متغیر های زیر رو در قسمت تعریف متغیر کد فرمتون قرار بدین:
dd:string;
year,month,day:word;
و در مرحله آخر کد زیر رو تو رویداد OnCreate فرمتون بنویسین:
dd:=DateToStr(date);
day:=StrToInt(copy(dd,9,2));
month:=StrToInt(copy(dd,6,2));
year:=StrToInt(copy(dd,1,4));
lbldate:= MiladiToShamsi(year,month,day);
و تمام دیگه
حالا فقط کافیه برنامه رو اجرا کنید.
امیدوارم این آموزش براتون مفید بوده باشه.
با تشکر
اگر به یک وب سایت یا فروشگاه رایگان با فضای نامحدود و امکانات فراوان نیاز دارید بی درنگ دکمه زیر را کلیک نمایید.
ایجاد وب سایت یا