ورود

نسخه کامل مشاهده نسخه کامل : تاریخ شمسی در ASP.NET/Delphi.Net



B O L O T
08-06-2007, 12:24
اولین چیزی که از بکار برده شدن تاریخ شمسی در ASP.NET دیدم کاری از آقای وحید نصیری بود که یک کلاس نوشته شده با #C بود.
کمی بعد چنین کاربردی را در کاری از آقای علی حدیدیان که در یک پرتال نوشته شده با Delphi.Net بنام وزش دیدم. این کاربرد با دلفی نوشته شده بود و بنظر می رسید تبدیلی از توابع قدیمی تاریخ شمسی نوشته در پاسکال به Delphi.NET بود.
آخرین و کامل ترین کتابخانه ای که مشاهده شد کاری از آقای امید خندان راد بود. این کتابخانه نیز در #C نوشته شده و زحمت زیادی نیز برای آن کشیده شده است. این کلاس به دلیل کامل و بی نقص بودن، و نیز سازگار بودن با استانداردهای دات نت 2.0، تحت عنوان PersianCalendar در System.Globalization اضافه شده است.
سورس کلاس فوق قبل از ظهور دات نت 2.0 برای دات نت 1.1 منتشر شده بود و موجود است.

B O L O T
08-06-2007, 12:25
قابل استفاده کردن کلاس PersianCalendar در Delphi.NET
همانطور الان دیگه حتما میدانید، کلاس فوق در #C نوشته شده و ما میخواهیم از آن در Delphi.NET استفاده کنیم.
برای انجام اینکار میبایست کلاس فوق را در ویژوال استودیو 2003 به یک پروژه از نوع Class Library اضافه کنید و پروژه را کامپایل کنید. در نتیجه یک اسمبلی (DLL) سازگار با دات نت 1.1 خواهیم داشت و میتوانیم آنرا در دلفی دات نت استفاده کنیم.

B O L O T
08-06-2007, 12:26
اضافه کردن اسمبلی PersianCalendar.dll به پروژه
اولین کاری که برای استفاده از کلاس فوق باید انجام دهید اضافه کردن Reference اسمبلی آن به پروژه مورد نظر است. برای انجام این کار مراحل زیر را انجام دهید (فرض شده است الان پروژه شما در محیط Borland Developer Studio باز است):

1. فایل PersianCalendar.dll را به فولدر Bin پروژه تان کپی کنید.
2. از منوی View گزینه Project Manager را انتخاب کنید.
3. در درختواره پروژه شاخه References را انتخاب کرده و روی آن رایت کلیک کنید.
4. گزینه Add Reference را انتخاب کنید.
5. در پایین پنچره Add Reference در بخش New Reference دکمه Browse را کلیک کنید.
6. فایل PersianCalendar.dll را از فولدر Bin پروژه تان انتخاب کنید.
7. OK را کلیک کنید.

B O L O T
08-06-2007, 12:26
یک کاربرد ساده: تبدیل تاریخ/ساعت سیستم به هجری شمسی:
فرض می کنیم الان شما یک صفحه خالی در پروژه تان دارید و الان آن صفحه جلوی چشم تان است.

1. یک Button و یک TextBox به صفحه تان اضافه کنید.
2. با زدن کلید F12 به ادیتور کد بروید. الان سورس Code Behind صفحه را به زبان Object Pascal مشاهده می کنید.
3. در لیست Uses در بخش Interface یونیت تان System.Globalization را اضافه کنید.
4. با زدن مجدد کلید F12 به Form Designer بروید.
5. روی دکمه ای که به صفحه اضافه کرده اید دابل کلیک کنید تا واقعه OnClick آن جهت ویرایش در ویرایشگر کد باز شود.
6. این کد را در پروسه مذکور اضافه کنید:
کد:

var
pcal: PersianCalendar;
dt: DateTime;
begin

pcal := PersianCalendar.Create();
dt := DateTime.Now;
TextBox1.Text := pcal.GetYear(dt).ToString()+ '/'
+pcal.GetMonth(dt).ToString()+'/'+
pcal.GetDayOfMonth(dt).ToString();
end;

7. پروژه را اجرا کنید

azad5162
21-07-2007, 09:58
این چیزهایی که نوشته بودید خوب است
ولی من چکار کنم که وقتی یک کنترل calendar به فرم اضافه می کنم
کنترلم تقویم فارسی را نشان دهد.

_H2_
21-07-2007, 10:06
سلام
کنترلر Calendar فارسی به صورت داخلی وجود ندارد!
باید یا خودتان کد بنویسید یا از dll دیگران استفاده کنید.
نمونه ای من دارم ولی تحت ویندوز است و نه وب. البته نمونه های تحت ویندوز زیاد هستند.

bad_boy_2007
21-07-2007, 23:32
ميشه خواهش کنم نمونه ات رو بزاري؟ :20:

_H2_
22-07-2007, 09:41
سلام
یک نمونه از خودم دارم میتونم فردا برایتان بفرستم و اگر امکان دارد ایمیلتان را بدهید! (تاکید میکنم که برای ویندوز است نه وب)

bad_boy_2007
22-07-2007, 12:15
ict_boy_2005@yahoo.com
ممنون H2 جان

_H2_
23-07-2007, 13:24
سلام
فرستادم!
البته دارم رویش کار میکنم تا چیز فوق العاده توپ تری بسازم! ولی فعلاً با کمی وقت و اینکه نمیخواهم مثل بعضی ها از UserControl استفاده کنم و میخواهم همه چیز مستقیماً با خود +GDI رسم شود، نتیجتاً کمی طول میکشد.