# Native Code > برنامه نویسی در Delphi >  تبدیل تاریخ میلادی به شمسی و برعکس ( همه چیز محیا می باشد )

## دنی کوئیل

آقا من از این ور ان ور یه کامپونت گیر آوردم برای تبدیل تاریخ شمسی به میلادی و برعکس
و یک مقاله آموزش اما نتونستم ازش استفاده کنم

به نظر من برنامه نویس های حرفه ای حتما می توانند از این کامپونت استفاده کنند

چون من تو حد و اندازه ای آنها نیستم

خواهشن پس از کار با این کامپونت پروژشو آپلود کنند تا ما از آن استفاده کنیم

یک دنیا ممنون

----------


## Touska

دستت درد نکنه آقای شمس

----------


## دنی کوئیل

آقا مصطفی خواهشن بگید چه جوری ازش استفاده کردید

----------


## babak869

آقای شمس؟؟؟؟؟؟؟ یعنی ایشون...!!!!!!! از کجا فهمیدی توسکای عزیز؟

----------


## net_ved

مشکل تاریخ شمسی خیلی وقته که کاملا با بهترین شکل... یعنی با یه unit  که تو همین سایت هست...اگه پیداش نکردین به من بگین که  اینجا  uploadesh konam

----------


## Mahdi_S_T

بهترین راه حل تاریخ شمسی ==> فارسی کامپوننت

----------


## دنی کوئیل

> آقا من از این ور ان ور یه کامپونت گیر آوردم برای تبدیل تاریخ شمسی به میلادی و برعکس
> و یک مقاله آموزش اما نتونستم ازش استفاده کنم
> 
> به نظر من برنامه نویس های حرفه ای حتما می توانند از این کامپونت استفاده کنند
> 
> چون من تو حد و اندازه ای آنها نیستم
> 
> خواهشن پس از کار با این کامپونت پروژشو آپلود کنند تا ما از آن استفاده کنیم
> 
> یک دنیا ممنون


آقا یکی بگه چه جوری من از توابع یونیی که آپلود کردم استفاده کنم ؟

----------


## oghab

سلام
اول برنامه ات را توی دلفی باز کن و بعد از منوی Project گزینه Add to Project را انتخاب کن و یونیت UFarsiDate را از جایی که ذخیره کردی انتخاب کن و open بزن.
این یونیت به پروژه ات اضافه میشه.
یه دفعه save As بزن تا این یونیت با پروژه ات save بشه.
بعد توی هر یونیتی که می خواهی از توابع این یونیت استفاده کنی باید در قسمت implementation در قسمت uses این یونیت را اضافه کنی

uses UfarsiDate;

حالا تو اون یونیت می تونی از تئابع آن استفاده کنی. مثلا:

label1.Caption :=TFarDate.farDateToStr(TFarDate.MiladyToShamsi(da  te)  );
‍
دقت کن قبل استفاده از هر تابعی که توی help ش توضیح داده باید TFarDate را بنویسی!
و برای تبدیل تاریخ بدست آمده از تابع MiladyToShamsi به string از fardatetostr استفاده کنی نه datetostr و گرنه تاریخ بدست آمده اشتباه میشه!
موفق باشی.

----------


## دنی کوئیل

> سلام
> اول برنامه ات را توی دلفی باز کن و بعد از منوی Project گزینه Add to Project را انتخاب کن و یونیت UFarsiDate را از جایی که ذخیره کردی انتخاب کن و open بزن.
> این یونیت به پروژه ات اضافه میشه.
> یه دفعه save As بزن تا این یونیت با پروژه ات save بشه.
> بعد توی هر یونیتی که می خواهی از توابع این یونیت استفاده کنی باید در قسمت implementation در قسمت uses این یونیت را اضافه کنی
> 
> uses UfarsiDate;
> 
> حالا تو اون یونیت می تونی از تئابع آن استفاده کنی. مثلا:
> ...


آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین آفرین 
 :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:   :تشویق:

----------


## Bahmany

با تشکر از انتقال اطلاعات خود به دیگران

----------


## Dolphin

تشکر دوست من اقای net_ved  اگه ممکنه اون unit را قرار بدید ممنون

----------


## دنی کوئیل

شما به اولین تایپیک برو 

من فایلی را آپلود کردم برو دانلود کن بعد برو تو مسیر زیر
FarsiDate\Win32

----------


## دنی کوئیل

آقا یک مشکل

تبدیل میلادی به شمسی یک روز عقب نشان می دهد

میشه با جمع کردن با یک درست کرد

اما به نظر شما سال های بعد درد سر نشه ؟

----------


## oghab

سلام
چند تا تابع برای تبدیل میلادی به شمسی داره. کدوم را استفاده کردی.
من MiladyToShamsi را امتحان کردم مشکلی نداشت.
دقیقا کدی که نوشتی را بنویس. 
نکنه از datetostr استفاده کردی؟
تاریخ میلادی که بهش میدی درسته؟
میخای هم از salarSoft که این یونیت را نوشته سوال کن!

----------


## parhizkar2000

با سلام 
من که از این یونیت استفاده کردم یه خطا میده و اونهم بدین صورت که چند تا متغیر که ازشون استفاه میشه تعریف نشده اند.

class function TFarDate.farTryEncodeTime(Hour, Min, Sec, MSec: Word; out Time: TDateTime): Boolean;
begin
  Result := False;
  if (Hour < HoursPerDay) and (Min < MinsPerHour) and (Sec < SecsPerMin) and (MSec < MSecsPerSec) then
  begin
    Time := (Hour * (MinsPerHour * SecsPerMin * MSecsPerSec) +
             Min * (SecsPerMin * MSecsPerSec) +
             Sec * MSecsPerSec +
             MSec) / MSecsPerDay;
    Result := True;
  end;
end;

مثل  MinsPerHour ,  SecsPerMin که توی این تابع اند .چطوری میتونم .این مشکل رو حل کنم .
باتشکر

----------


## parhizkar2000

کسی در این مورد نظری نداره

----------


## Hamid_PaK

در هر حال از نظر من بهترین گزینه برای تبدیل تاریخ شمسی یونیتی هست به نام SolarUtl.pas که آقای کامبیز خجسته نوشته اند و هیچ مشکلی هم نداره .

موفق باشید ، یا حق ...

----------


## adelmobasheri

من هم امتحان کردم یک روز عقب نشون میده

آقای Hamid_PaK شما هم اون یونیت آقای خجسته رو بزار استفاده کنیم

----------


## dkhatibi

> در هر حال از نظر من بهترین گزینه برای تبدیل تاریخ شمسی یونیتی هست به نام SolarUtl.pas که آقای کامبیز خجسته نوشته اند و هیچ مشکلی هم نداره .
> 
> موفق باشید ، یا حق ...


تا اونجا که یادمه برای تاریخهای فعلی مشکلی نداشت. اما وقتی اونو با یک کامپوننت تاریخ خورشیدی ( غیر رایگان) مقایسه کردم دیده شد که برای سالهای 1400 به بعد با کمی مشکل رو به رو می شه(یک روز اختلاف)

----------


## SalarSoft

خوشحال میشدم که این مشکلات رو برام Pm بزنید تا مطلع بشم.




> تا اونجا که یادمه برای تاریخهای فعلی مشکلی نداشت. اما وقتی اونو با یک کامپوننت تاریخ خورشیدی ( غیر رایگان) مقایسه کردم دیده شد که برای سالهای 1400 به بعد با کمی مشکل رو به رو می شه(یک روز اختلاف)


حتما بررسی میکنم

----------


## حرفه ای

دمت گرم کد با حالیه
2 تا سوال
1) مطمونید کاملا دقیق عمل می کنه
2) یکی به ما روی تاریخ شمسی به میلادی کمک کنه

----------


## Touska

> دمت گرم کد با حالیه
> 2 تا سوال
> 1) مطمونید کاملا دقیق عمل می کنه
> 2) یکی به ما روی تاریخ شمسی به میلادی کمک کنه


هم تابع آقای Salar Soft کامل و بدون مشکل هست و هم Persian.Dll من 

موفق باشید :)

----------


## SalarSoft

> تا اونجا که یادمه برای تاریخهای فعلی مشکلی نداشت. اما وقتی اونو با یک کامپوننت تاریخ خورشیدی ( غیر رایگان) مقایسه کردم دیده شد که برای سالهای 1400 به بعد با کمی مشکل رو به رو می شه(یک روز اختلاف)


با چندتا دیگه بررسی و مقایسه کردم هیچ مشکلی نداشت!!
احتمالا سایر ابزارها مشکل داشتند

----------

