# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > VB.NET >  ابزارهای تبدیل تاریخ برای دات نت

## بابک زواری

نقل از سایت شهابفر
تبدیل تاریخهای میلادی، شمسی و قمری به یکدیگر
با توجه به در اختیار نبودن اطلاعاتی در مورد تقویم هجری شمسی (جلالی) در کتابخانه NET. برنامه نویسان ایرانی همواره خود به دنبال راه حلهایی جهت گنجاندن قابلیت استفاده از تقویم شمسی در برنامه های کاربردی خود می باشند. 
Persia API یک کتابخانه با استفاده رایگان می باشد که برنامه نویسان به کمک آن می توانند به راحتی و تنها با یک یا دو خط کدنویسی تاریخهای هجری شمسی، هجری قمری و میلادی را در برنامه های مبتنی بر NET. به یکدیگر تبدیل نمایند. 
Persia API از جمله کتابخانه هایی است که امکان استفاده از تقویم هجری شمسی شامل تبدیل آن به تاریخ های میلادی و هجری قمری و بالعکس را دارا می باشد. با آنکه کتابخانه NET. اطلاعات مربوط به تقویم هجری قمری ( تقویم اسلامی) را در خود گنجانده است، ولی با همه اینها کتابخانه Persia قابلیت تبدیل تاریخ میلادی به هجری قمری و با لعکس را به روش ساده تری مهیا نموده است

Persia API 





http://www.shahabfar.com/misc/persia/
http://www.shahabfar.com/articles/ar...spx?article=14

----------


## بابک زواری

تبدیل تاریخها با استفاده از Persia API 
کتابخانه Persia ( نسخه 1) شامل چند کلاس مختلف در قالب یک فایل DLL می باشد. برای اضافه کردن آن به یک پروژه، همانند سایر کامپوننتها و کتابخانه ها، آن را به سایر reference های برنامه اضافه می کنیم. بدین ترتیب کلاس Calendar در اختیار قرار می گیرد و می توان از متدها و مشخصه های آن استفاده نمود. برای تبدیل تاریخها به یکدیگر از توابع و مشخصه های موجود در کلاس Calendar استفاده می کنیم.

تبدیل تاریخ میلادی به شمسی:
برای این تبدیل می بایست از تابع ConvertToPersian استفاده کنیم. این تابع دارای ۳ overloads می باشد. لذا ۳ سری پارامتر مختلف را می توان برا آن در نظر گرفت.



// converting from Gregorian to Persian date

Persia.Calendar.ConvertToPersian(DateTime datetTime);

Persia.Calendar.ConvertToPersian(int year, int month, int day);



// converting from Islamic to Persian date

Persia.Calendar.ConvertToPersian(Persia.MoonDate moonDate); 
 


مقدار برگشتی این تابع از نوع کلاس SunDate می باشد. کلاس SunDate از ۴ مشخصه برای فرمت تاریخ تبدیل شده و یک مشخصه که در برگیرنده عدد روز در هفته می باشد، تشکیل شده است. جدول زیر به بیان این مشخصه ها همراه با مثال می پردازد.

Sample Data Type DescriptionPropertyintیک آرایه ۳ عضوی از نوع int شامل عدد روز، ماه و سال Array Type ۱۳۸۴/۳/۱۸stringفرمت عددی و معمول تاریخ شمسیSimpleهجدهم خرداد ۱۳۸۴stringفرمت حروفی تاریخ شمسیPersianچهارشنبه ۱۸ خرداد ۱۳۸۴stringتاریخ شمسی به همراه روز هفتهWeekday0=شنبه و 6=جمعهintعدد روز در هفتهDayOfWeek


مثال:



 Persia.SunDate sunDate = Persia.Calendar.ConvertToPersian(DateTime.Now);



int year  = sunDate.ArrayType[0];

int month = sunDate.ArrayType[1];

int day   = sunDate.ArrayType[3];



stirng simplePersianDate      = sunDate.Simple;

stirng simpleWrordPersianDate = sunDate.Persian;

stirng weekdayPersianDate     = sunDate.Weekday;



int dayOfWeek = sunDate.DayOfWeek;
 




تبدیل تاریخ شمسی به میلادی:
برای این تبدیل از تابع ConvertToGregorian استفاده می شود.این تابع دارای ۲ overload می باشد. بدین معنی که ۲ سری پارامتر مختلف را می توان برای آن در نظر گرفت. نوع برگشتی این تابع از نوع کلاس DateTime می باشد.



 DateTime date1 = Persia.Calendar.ConvertToGregorian(1384, 3, 18);



// if sunDate is a valid object of Persia.SunDate calss we can write 

 DateTime date2 = Persia.Calendar.ConvertToGregorian(sunDate);
 




تبدیل تاریخ شمسی به قمری:
برای این تبدیل از تابع ConvertToIslamic استفاده می شود. این تابع دارای ۳ overload می باشد. لذا ۳ سری پارامتر مختلف را می توان برای آن در نظر گرفت.



 // converting from Persian to Islamic date

 Persia.Calendar.ConvertToIslamic(Persia.SunDate sunDate);



// converting from Gregorian to Islamic date

 Persia.Calendar.ConvertToIslamic(DateTime datetTime);

 Persia.Calendar.ConvertToIslamic(int year, int month, int day);
 


نوع برگشتی این تابع از نوع کلاس MoonDate می باشد که دارای مشخصه های زیر است.

Sample Data Type DescriptionPropertyintیک آرایه ۳ عضوی از نوع int شامل عدد روز، ماه و سال Array Type ۱۴۲۶/۵/۱stringفرمت عددی تاریخ قمریSimpleاِلأَربِعا ۱ جمادی الاولی ۱۴۲۶stringتاریخ قمری به همراه روز هفتهFormal0=شنبه و 6=جمعهintعدد روز در هفتهDayOfWeek
مثال.



 // converting from Persian to Islamic date

// if sunDate is a valid object of Persia.SunDate class



 Persia.MoonDate moonDate = Persia.Calendar.ConvertToIslamic(sunDate);

// converting from Gregorian to Islamic date

 Persia.MoonDate moonDate = Persia.Calendar.ConvertToIslamic(DateTime.Now);



int year  = moonDate.ArrayType[0];

int month = moonDate.ArrayType[1];

int day   = moonDate.ArrayType[3];



stirng simpleIslamicDate  = moonDate.Simple;

string weekdayIslamicDate = moonDate.Formal;



int dayOfWeek = moonDate.DayOfWeek;
 




دریافت Persia API به همراه مثال های تکمیلی.

----------


## Hamedm

سلام
جناب زواری بابت این کلاس تشکر میکنم.

نمیدونم PersianTools رودید یا نه. از این DLL یک سورس گذاشتم. دیدم شما یک مثال از تبدیل تاریخ گذاشتید، گفتم بد نیست من هم این Class رو قرار بدم. این DLL تنها ایرادش اینکه قمری نداره.

حتما یک نگاهی بهش بندازید. ضرری نداره.

در پناه حق موفق باشید و پرتوان

----------


## بابک زواری

از قضا منم که این کلاس رو دیدم الان دارم یک DatePicker  مینویسم که برای استفاده دوستان قرار بدم
البته با دات نت دو

----------


## Hamedm

> از قضا منم که این کلاس رو دیدم الان دارم یک DatePicker  مینویسم که برای استفاده دوستان قرار بدم
> البته با دات نت دو


سلام

اگه خواستید یک نگاه به این بندازید.

در پناه حق موفق باشید و پرتوان

----------


## Peyman_Ranjbar

ازتون متشکرم 
توابع جالبی بود می خواستم ببینم سورس تابع تبدیل تاریخ رو ندارید 
می خواهم توی Access استفاده کنم(تحت .net نباشه) اون قبلیا همشون توی 31 اسفند پارسال مشکل دارن

----------


## بابک زواری

ممنون برم ببینم چی هستن ؟
ولی سعی میکنم خودم بنویسم ببینم چی میشه ؟

----------


## بابک زواری

سورس رو به چه زبونی لازم دارید ؟

----------


## zarrin_306

متشکر اما بدون نگاه کردن

----------


## sarami

دوست عزیزی که دنبال تابع تبدیل تاریخ در access میگرند میتونن به این تاپیک یه سر بزنن
http://www.barnamenevis.org/sh...6%231740%3B%CE

----------


## بابک زواری

سورسهایی رو که آقای محمدی گذاشتن خیلی خوب بودن 
فقط تست نکردم ببینم که در برای تمام ایام درست کار میکنن یا نه

----------


## Mohammad .net

> از قضا منم که این کلاس رو دیدم الان دارم یک DatePicker مینویسم که برای استفاده دوستان قرار بدم
> البته با دات نت دو


با سلام . 

من یک کنترل نوشتم که تا حدود زیادی شبیه MonthCalendar است . ولی در ساخت DateTimePicker مشکلاتی دارم. 
مثلاً نحوه باز کردن تقویم ، وقتی که کاربر روی فلش رو به پایین کلیک می کنه و یا بستن تقویم . :ناراحت:  

اگر صلاح می دونید یه تاپیک ایجاد کنید تا نتیجش یک MonthCalendar و یک DateTimePicker کامل و استاندارد بشه.

انشا ا.. به سرنوشت قفل نرم افزاری دچار نشه . :چشمک:  

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

----------


## بابک زواری

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

----------


## Mohammad .net

لطفاً مشاهده کنید. اگر قابل استفاده بود سرس را با کمال میل تقدیم می کنم

----------


## Hamedm

> لطفاً مشاهده کنید. اگر قابل استفاده بود سرس را با کمال میل تقدیم می کنم


سلام

جالب بود. ولی تصور کن در برنامه نمیشه که همچین فضایی رو در فرم فقط به یک تقویم اختصاص داد. اگه بصورت یک Combo بود که با باز شدن لیست تقویم نمایان میشد، خیلی کارامدتر بود.

در هر صورت از شما تشکر میکنم.
اگه امکان داره سورسو هم قرار بده.

در پناه حق موفق باشید و پرتوان

----------


## Mohammad .net

> اگه بصورت یک Combo بود که با باز شدن لیست تقویم نمایان میشد، خیلی کارامدتر بود.


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



> من یک کنترل نوشتم که تا حدود زیادی شبیه MonthCalendar است . ولی در ساخت DateTimePicker مشکلاتی دارم. 
> مثلاً نحوه باز کردن تقویم ، وقتی که کاربر روی فلش رو به پایین کلیک می کنه و یا بستن تقویم .


  :متفکر:   که فکر کنم  یه مسئله اساسی باشه و دوستان باید کمک کنند
البته MonthCalendar هم کاربرد های خوبی در جای خوش داره . ( مثلاً Bold کردن روز های خاصی توی تقویم برای نشان دادن وقوع رویداد خاصی در آن روز ها و ... ) 

با نگاهی که به کد های Net. داشتم دیدم که راه رسیدن به DateTimePicker از MonthCalendar می گذرد. :چشمک:  

در ضمن ببخشید . تعلل من در قرار دادن سورس فقط بخاطر نا مرتب بودن اونه. سعی می کنم کد را مستند کنم و بعد قرار بدم تا بتونیم روش بحث کنیم. امیدوارم منو ببخشید.

----------


## بابک زواری

نمیشه از همین کدهای آقای محمدی استفاده کرد ؟

----------


## Mohammad .net

بحث رو حول مطلب تاریخ پیش ببرید

----------


## سلماس

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

----------


## بابک زواری

در ضمن من این تاپیک رو همینطور ایجاد کردم که توسط یکی از مدیران به شکل اطلاعیه در آمده
پس وقتی که تاپیکی به شکل اطلاعیه هست هیچ نیازی به ایجاد تاپیک های موازی نیست.
شرمنده از دوستان و بزرگواران که باز هم برگشتیم سر جنگ و بحث روی مسائل پیش پا افتاده
و از هدف اصلی دور شدیم .
اگر یک کم خودپسند نباشیم و فکر این رو نکنیم که این اگر کار توی این تاپیک تموم بشه دیگه اسم من
نمیاد وسط و از این حرفها اونوقت خیلی مسائل از این قبیل پیش نمیاد.
نکته آخر اینکه در صورت داشتن هرگونه شکایت به مدیر سایت مراجعه کنید بحثهای غیر فنی و غیر
کامپیوتری رو حذف و در صورت تکرار کاربر مربوطه رو اخراج میکنم

----------


## linux

persiontools را من طراحی کردم و نوشتم و نمی دونم شما کدام نسخه آن را دارید ولی در آخرین تغییراتی که دادم 
month calendar  و datepicker اضافه کردم و یک نسخه را در اختیار آقای sh قرار دادم.
به هر حال کد اینجا هست من هم دوباره upload می کنم دوست داشتید استفاده کنید دوست داشتید نکنید.
اگر خواستید چیز جدید اضافه بشه بهش نظر بدید اگر وقت بود حتما اضافه می کنم سورس کد را هم نخواهید که قبلا تو سایت قسمت اصلی شو گذاشتم.
خلاصه سلایق زیادند هر کسی هم یه نوع احتیاج خاصی داره من این کد را برای برطرف کردن مشکلات خودم نوشتم. کار بی نقصی هم نیست ولی از نظر محاسبات خیالتون راحت باشه تا 100 سال آینده درست کار می کنی یکی از دوستان چک کرده بودن که از سال 1900 تا 3000 میلادی می تونید روش حساب کنید. شما هم می تونید چک کنید ببینید درست هست یا نه.
به نظر می رسد آقای شهاب فر هم از همین پرشین تولز ایده گرفته باشه حالا اگر نگاه کنید بیشتر متوجه می شوید و اینکه اولین پست تو این مورد که من فرستادم مال سال اواخر سال 81 بوده.

----------


## sh

> و یک نسخه را در اختیار آقای sh قرار دادم


بابک جان 

جا دارد یکبار دیگر از تو تشکر کنم

----------


## Amir Taghavi

عالی بود با این dll چه کارها که نمی توان کرد!

----------


## Amir Taghavi

با سلام خدمت هم دات نت ها 
میخواهم در وی بی دات نت یک گزارش کاملا پویا و دستی بنویسم چطور میشود به آبجکتهای کریستال در ماژول دسترسی پیدا کرد و آنها را دید 
با تشکر - امیر

----------


## amohammadi

من برای تبدیل کردن تاریخ خیلی مشکل داشتم با این سایت هم آشنا نبودم مجبور شدم یک کلاس تاریخ نوشتم البته کامل نیست
فورمولش رو پارسال از اینترنت گرفتم اما یادم نیست از کجا امیدوارم مرا ببخشید 
اما کلاس ساده را خودم نوشتم
در ضمن PersianToolsPack.dll و persia.dll بسیار عالی بود خیلی کمکم کرد متشکرم

----------


## Hamedm

> persiontools را من طراحی کردم و نوشتم و نمی دونم شما کدام نسخه آن را دارید ولی در آخرین تغییراتی که دادم 
> month calendar  و datepicker اضافه کردم و یک نسخه را در اختیار آقای sh قرار دادم.
> به هر حال کد اینجا هست من هم دوباره upload می کنم دوست داشتید استفاده کنید دوست داشتید نکنید.
> اگر خواستید چیز جدید اضافه بشه بهش نظر بدید اگر وقت بود حتما اضافه می کنم سورس کد را هم نخواهید که قبلا تو سایت قسمت اصلی شو گذاشتم.
> خلاصه سلایق زیادند هر کسی هم یه نوع احتیاج خاصی داره من این کد را برای برطرف کردن مشکلات خودم نوشتم. کار بی نقصی هم نیست ولی از نظر محاسبات خیالتون راحت باشه تا 100 سال آینده درست کار می کنی یکی از دوستان چک کرده بودن که از سال 1900 تا 3000 میلادی می تونید روش حساب کنید. شما هم می تونید چک کنید ببینید درست هست یا نه.
> به نظر می رسد آقای شهاب فر هم از همین پرشین تولز ایده گرفته باشه حالا اگر نگاه کنید بیشتر متوجه می شوید و اینکه اولین پست تو این مورد که من فرستادم مال سال اواخر سال 81 بوده.


سلام

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

در پناه حق موفق باشید و پرتوان

----------


## linux

ببخشید متوجه منظورتان نشدم

----------


## Hamedm

> ببخشید متوجه منظورتان نشدم


سلام

ببینید مثلا میخواهم این کامپوننت تاریخ 1383/02/05 رو نشون بده. اگثر property های این کامپوننت Read Only است و نمیشه بهش تاریخ پاس داد.

امیدوارم منظورمو درست رسونده باشم.

در پناه حق موفق باشید و پرتوان

----------


## linux

منظورتون PersianMonthCalendar1 این کنترل هست آره لازم نبوده تا حالا. این کار را بکنیم به فکرم هم نرسیده بود.

----------


## s.sepehrvand

کامپوننت تاریخ فارسی برای Dot Net 2005 



http://www.developercenter.ir/Forum/...read.php?t=278

----------


## بابک زواری

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

----------


## سلماس

اینم همون فایل آقای سپهروند برای دانلود مستقیم

----------


## سلماس

منبع سایت این برنامه 
http://www.developercenter.ir/Forum/...read.php?t=278
در همون سایت نوشته شده



> برای استفاده از توابع Fardate ,ابتدا باید کامپوننت Fardate به پروژه Reffrence بدهید و بعد در هر جائی که خواستید از Class Fardate استفاده کنید .
> Dim Fd as New Fardate.FardatePrg
> (گرفتن تاریخ روز) Fd.Today 
> (تاریخ میلادی برای تبدیل به شمسی) F.M2s
> (تاریخ شمسی برای تبدیل به میلادی) Fd.S2m

----------


## sh

این کامپوننت رو وقتی رو فرم میذاری چرا سال رو 82 نشون میده ؟

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

----------


## forexwork

کامپوننت تقویم دیواری با vb.net

----------


## forexwork

یادم رفت فایلرو بزاریم
ضمنا این کامپوننت امکان درج یادداشت هم داره

----------


## Hamedm

سلام



> یادم رفت فایلرو بزاریم
> ضمنا این کامپوننت امکان درج یادداشت هم داره


پس از اضافه کردن این کامپوننت، در زمان اجرای برنامه پیغام زیر ظاهر شد.



در پناه حق موفق باشید و پرتوان

----------


## forexwork

نمیدونم چرا من تا حالا vs2005 استفاده نکردم من تو 2003 مشکلی ندارم

----------


## M.kavyani

با سلام خدمت دوستان
ورژن جدید پرسیا منتشر شد. این ورژن که هم در فریم ورک 1.1 و هم در فریم ورک 2 کار میکند را می توانید به صورت رایگان از آدرس زیر دریافت نمایید.
http://www.shahabfar.com/misc/persia/
امیدوارم کسی قبلا" این رو بیان نکرده باشه.

----------


## vbprogrammerx

<b>test</b>

----------


## parvin_1704

مرسی- کمکتون خیلی به موقع بود

----------


## vbprocoder

جدیدا تقویم زیبایی در آدرس زیر قرار گرفته میتونید سر بزنید و دانلود کنید
طبق اظهارات مسئول سایت بزودی dll آن هم در سایت قرار خواهد گرفت

----------


## sh

این زیر که چیزی نیست !

----------


## mostafa_leman

سلام . من یک Dll دارم که مثلا اگه توی قسمت Mask شما عبارت ldate رو تایپ کنین  این تکست باکس فرمت تاریخ رو میگیره و اگه money رو تایپ کنین به فرمت پول در میاد. و . . . 
مثلا در حالت تاریخ 6 ماه اول سال رو 31 روزی قبول میکنه و در مابقی سال 30 روزه . و فقط کاربر میتونه تاریخ رو به حالت استاندارد وارد کنه . اما منظورم از این حرف این بود که اگر دوستان مایل باشن بیایم یه تقویم فارسی رو با این تکست باکس ادغام کنیم تا کاربر علاوه بر انتخاب انتخاب گرافیکی بتونه دستی هم تاریخ رو وارد کنه ( البته من این  dll رو خودم ننوشتم اما یکی شبیه این فایل میسازم تا حق کپی رایت محفوظ بمونه ) بعد سورسشو در اختیار بقیه میذارم تا بتونیم با کمک هم یه تقویم زیبا بسازیم. اگه کسی حاضر به همکاری هست اعلام آمادگی کنه
چون به نظر من تمام تقویم های موجود هر کدوم یک عیبی دارن . . .

----------


## M.kavyani

> سلام . من یک Dll دارم که مثلا اگه توی قسمت Mask شما عبارت ldate رو تایپ کنین  این تکست باکس فرمت تاریخ رو میگیره و اگه money رو تایپ کنین به فرمت پول در میاد. و . . . 
> مثلا در حالت تاریخ 6 ماه اول سال رو 31 روزی قبول میکنه و در مابقی سال 30 روزه . و فقط کاربر میتونه تاریخ رو به حالت استاندارد وارد کنه . اما منظورم از این حرف این بود که اگر دوستان مایل باشن بیایم یه تقویم فارسی رو با این تکست باکس ادغام کنیم تا کاربر علاوه بر انتخاب انتخاب گرافیکی بتونه دستی هم تاریخ رو وارد کنه ( البته من این  dll رو خودم ننوشتم اما یکی شبیه این فایل میسازم تا حق کپی رایت محفوظ بمونه ) بعد سورسشو در اختیار بقیه میذارم تا بتونیم با کمک هم یه تقویم زیبا بسازیم. اگه کسی حاضر به همکاری هست اعلام آمادگی کنه
> چون به نظر من تمام تقویم های موجود هر کدوم یک عیبی دارن . . .


موافقم.
منم پایه هستم.
بسم الله

----------


## rezanew

سلام
منم اینو نوشته بودم ولی فرصت نکردم کاملش کنم
یه ایرادایی داره (فکر کنم سرعتش کمه یا نمی دونم من این طوری فکر می کنم و یه سری ایراد دیگه) ولی در کل فکر کنم چیز زیاد بدی نشده

توی این فایل Rar یه فولدر هست به نام Cdata اونو کپی کنین به محل Exe برنامتون!!(البته اگه کپی هم نکنین مشکلی به وجود نمی آد!!!)

در ضمن اینو تو 2005 نوشتم و تو 2003 تست نکردم!

----------


## mostafa_leman

سلام . من تونستم حق کپی این فایل رو از طرف مقابل بخرم
حالا این تکست باکسش
توی قسمت Mask عبارت ldate رو وارد کنین تا به صورت تاریخ دربیاد
حالا نظرتونو لطفا در مورد قسمت گرافیکیش و اینکه چه جوری نمایش داده بشه بنویسید
من متاسفانه زیاد کامپوننت نویسیم قوی نیست
چه جوری میشه توی یک user Control هر دو رو قرار داد ؟ مثل calendar خود vs.net که تا موقعی که کمبو باکس زده نشده اون نمایش داده نمیشه و ثانیا اونو توی همون کامپوننت اضافه میکنه (امیدوارم منظورمو فهمیده باشین)
آقای کاویانی و دیگر دوستان نظرشونو بگن

----------


## komail_sh

من یه کلاس دارم برای تبدیل که حتی سال کبیسه رو حساب میکنه
Public Class clsdate
    Public Function GetDate(ByVal Y, ByVal M, ByVal D, ByVal Flag)

        Dim MonthTable(12)
        Dim R
        Dim i
        Dim DD
        Dim MM
        Dim YY
        Dim s

        If Flag = 0 Then
            MonthTable(1) = 31
            MonthTable(2) = 28
            MonthTable(3) = 31
            MonthTable(4) = 30
            MonthTable(5) = 31
            MonthTable(6) = 30
            MonthTable(7) = 31
            MonthTable(8) = 31
            MonthTable(9) = 30
            MonthTable(10) = 31
            MonthTable(11) = 30
            MonthTable(12) = 31
            If M > 3 Then
                R = 10 + Kabiseh(Y - 621) + D
                For i = 4 To M - 1
                    R = R + MonthTable(i)
                Next
            ElseIf M = 3 And D >= 21 - Kabiseh(Y - 621) Then
                R = D - 20 + Kabiseh(Y - 621) - 1
            ElseIf M < 3 Then
                R = 286 + D - 1
                For i = 1 To M - 1
                    R = R + MonthTable(i)
                Next
            ElseIf M = 3 And D <= 20 + Kabiseh(Y - 621) Then
                R = 345 + Kabiseh(Y - 621) + D
            Else
                MsgBox("shamcyday Error !")
            End If


            If (M < 3) Or (M = 3 And D < (20 + Kabiseh(Y - 621))) Then
                YY = Y - 622
            Else
                YY = Y - 621
            End If

            DD = R
            If DD <= 6 * 31 Then
                MM = Int(DD / 31) + 1
                DD = DD Mod 31 + 1
            Else
                DD = DD - 6 * 31
                MM = Int(DD / 30) + 6 + 1
                DD = DD Mod 30 + 1
            End If
            s = Trim(CStr(YY))
            If Len(s) >= 4 Then
                s = Left(s, 4)
            ElseIf Len(s) = 3 Then
                s = "0" + s
            ElseIf Len(s) = 2 Then
                s = "00" + s
            ElseIf Len(s) = 1 Then
                s = "000" + s
            Else
                s = "1377"
            End If
            GetDate = s & "/" & twoDigit(MM) & "/" & twoDigit(DD)
        ElseIf Flag = 1 Then
            Select Case Weekday(DateSerial(Y, M, D), vbSunday)
                Case vbSunday
                    GetDate = "یکشنبه"
                Case vbMonday
                    GetDate = "دوشنبه"
                Case vbTuesday
                    GetDate = "سه شنبه"
                Case vbWednesday
                    GetDate = "چهار شنبه"
                Case vbThursday
                    GetDate = "پنجشنبه"
                Case vbFriday
                    GetDate = "جمعه"
                Case vbSaturday
                    GetDate = "شنبه"
            End Select
        Else
            GetDate = ""
        End If
    End Function
    Public Function Kabiseh(ByVal X)
        If Int(0.0125 + 8 / 33 * (X - 1371)) = Int(0.0125 + 8 / 33 * (X + 1 - 1371)) Then
            Kabiseh = 0
        Else
            Kabiseh = 1
        End If
    End Function
    Private Function twoDigit(ByVal V)
        V = Trim(V)
        If Len(V) = 1 Then
            twoDigit = "0" & V
        Else
            twoDigit = V
        End If
    End Function
    Public Function GetCurrentDate(ByVal Flag)
        GetCurrentDate = GetDate(Year(Date.Now), Month(Date.Now), DateAndTime.Day(Date.Now), Flag)

    End Function
    Public Function GetCurrentYear()
        GetCurrentYear = Left(GetDate(Year(Date.Now), Month(Date.Now), DateAndTime.Day(Date.Now), 0), 4)

    End Function
    Public Function GetCurrentMonth()
        GetCurrentMonth = Mid(GetDate(Year(Date.Now), Month(Date.Now), DateAndTime.Day(Date.Now), 0), 6, 2)


    End Function
    Public Function GetCurrentDay()
        GetCurrentDay = Right(GetDate(Year(Date.Now), Month(Date.Now), DateAndTime.Day(Date.Now), 0), 2)

    End Function

    'Dateorder1 = GetCurrentYear + "/" + GetCurrentMonth + "/" + GetCurrentDay  
End Class

----------


## SabaSabouhi

با سلام
هر چند که ممکنه با این تالار مناسبت نداشته باشه، اما حالا که بحث تاریخ شمسى و 
میلادى داغ هست من غیر از  #C و VB توابع تبدیل تاریخ شمسى به میلاد و برعکس رو
در SQL Server 2000 هم نوشته‌ام البته محدودیتش اینه که فقط در مورد smalldatetime
کار مى‌کنه (یعنى در دامنه تعریف smalldatetime نوشته شده). اگر به دردتون مى‌خوره
بفرستمش.

صبا صبوحى

پانوشت: درست کار کردنش قطعى هست.
پانوشت2: در مورد سرعتش هم فکر کنم بد نباشه.

----------


## touraj

> با سلام
> هر چند که ممکنه با این تالار مناسبت نداشته باشه، اما حالا که بحث تاریخ شمسى و 
> میلادى داغ هست من غیر از  #C و VB توابع تبدیل تاریخ شمسى به میلاد و برعکس رو
> در SQL Server 2000 هم نوشته‌ام البته محدودیتش اینه که فقط در مورد smalldatetime
> کار مى‌کنه (یعنى در دامنه تعریف smalldatetime نوشته شده). اگر به دردتون مى‌خوره
> بفرستمش.


حالا شما بفرست. ضرر که نداره

----------


## touraj

> من یه کلاس دارم برای تبدیل که حتی سال کبیسه رو حساب میکنه


به عبارات Right و Left ایراد میگیره

----------


## s20200

با سلام
من Persia API را برای .NET2.0 دانلود کردم.پروژه وب سایت با VB است. حالا اگه بخواهم در  این سایت تاریخ امروز رو تبدیل به شمسی کند چه کار باید بکنم. کدی در این زمینه برای VB وجود دارد با نه. کد مربوطه را در رویداد Page_load قرار دهم.این کدهایی که در خود سایت شهابفر قرار داده شده به چه زبانی است و باید در کدام قسمت برنامه قرار داده شود

----------


## sohrab o

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

----------


## CodeMasterX

اقایون عزیز من نمی تونم PersiaAPI رو دانلود کنم، وقتی برای سایتشون ایمیلم رو می فرستم سایتشون خطا میده، اگر کسی دانلودش کرده لطفا برام میل کنه، ممنون میشم.

armin.zia@gmail.com

----------


## رضا1103

دسترسی به کدهای برنامه های اجرائی که با کدنویسی vb.net نوشته شده است چگونه ممکن میباشد .
با تشکر از کسانی که جواب می دهند .

----------


## CodeMasterX

> دسترسی به کدهای برنامه های اجرائی که با کدنویسی vb.net نوشته شده است چگونه ممکن میباشد .
> با تشکر از کسانی که جواب می دهند .


منظورتون اینه که میخوان کد فایل های اجرایی (باینری) رو ببینید ؟
در این صورت قبلا بحث شده، کد کامل رو که نمیتونید بگیرید ولی میتونید با ابزاری مثل ILDASM.exe کد اسمبلی ها رو DisAssemble کنیدف البته اگر با ابزار امنیتی رمزنگاری نشده باشن.

----------


## golihaghighi

> با سلام خدمت دوستان
> ورژن جدید پرسیا منتشر شد. این ورژن که هم در فریم ورک 1.1 و هم در فریم ورک 2 کار میکند را می توانید به صورت رایگان از آدرس زیر دریافت نمایید.
> http://www.shahabfar.com/misc/persia/
> امیدوارم کسی قبلا" این رو بیان نکرده باشه.


سایت شهابفر خرابه کسی  پرسیا رو نداره به ما هم بده؟

----------


## dll9095

آقا مرسی دست همهتون درد نکنه . ممنون من از وقتی که وارد این سایت شدم اصلا نمیدونین چه پیشرفتی کردم . 
خیلی متشکر

----------


## golihaghighi

> سایت شهابفر خرابه کسی پرسیا رو نداره به ما هم بده؟


دوستان یکی نیست کمک کنه

----------


## aliha499

آقا یکی به ما بگه وقتی این وب سایت که در این انجمن ازش نام برده شده ، با این همه ایراد دست و پنجه نرم می کنه! ، چرا باید تبلیغ بشه. من مدتهاست که در این انجمن این نوضوع را می بینم و هر بار که به سراغ سایت اون رفتن دیدم که ایراد داره و کار نمی کنه؟

بهتره این تاپیک حذف بشه تا اشخاص مراجعه کننده دیگر سر کار نمونن...!

بهروز علیها

----------


## Sub Zero

بعضی از دوستان زحمت کشیدن و DatePicker درست کردن اما یه مطلبی هست که در طراحی اون در نظر نگرفتن .گذاشتن 31 کنترل button  به ازا هر روز و کلی کنترل دیگه کار عاقلانه ای نیست فکر لود شدن اون هم باشید . مخصوصا زمانی که قراره این کنترل توی یه فرم با ده ها فیلد ظاهر بشه 
یه نگاهی به  Calendar کامپوننت janus  بندازید تا تفاوت رو ببینید .
اگه یه تقویم فارسی به همون سبک سراغ دارید لطفا معرفی کنید .

----------


## Sub Zero

دوستان کسی DatePicker فارسی با استایل Janus سراغ نداره .

----------


## linux

> دوستان کسی DatePicker فارسی با استایل Janus سراغ نداره .


درست کردن همچین چیزی سخت نیست با GDI+ می توانید همه اینها ر بخوبی انجام دهید

----------


## Sub Zero

> درست کردن همچین چیزی سخت نیست با GDI+ می توانید همه اینها ر بخوبی انجام دهید


متاسفانه تجربه انجام همچین کاری رو ندارم . از اونجایی هم که خیلی ضروریه اگه امکانش هست سورس یا لینکی رو در این زمینه در اختیارم بذارید.

----------


## linux

> متاسفانه تجربه انجام همچین کاری رو ندارم . از اونجایی هم که خیلی ضروریه اگه امکانش هست سورس یا لینکی رو در این زمینه در اختیارم بذارید.


سورس ندارم ولی اگر وقتش را داری می توانم کمکت کنم تا بنویسی

----------


## توسعه نویس

آقا این بحث برای چیه.
*اصلا ببینم کی گفته که دات نت تاریخ شمسی نداره؟*  :متفکر: 

دات نت فریم ورک 2 تاریخ شمسی داره و خیلی هم خوب کار میکنه. پس هیچ نیازی به استفاده از کلاسهای متفرقه نیست. *از همین حالا کلاسهای متفرقه رو بزارید کنار*

امکان تاریخ هجری شمسی توسط یک برنامه نویس جوان ایرانی در مایکروسافت به دات نت 2 اضافه شده .
هر کس هم میخواهد کنترل تقویم طراحی کنه بهتره از همین استفاده کنه.

برای استفاده از تاریخ هجری شمسی به NameSpace زیر در دات نت 2 مراجعه کنید:
System.Globalization.PersianCalendar()
اگه یه نیگاه به متدهای PersianCalendar بندازید همه چیز میاد دستتون. استفادش آسونه.

ضمنا دوستانی که تقویم بصری فارسی اجتیاج دارند و با این کامپوننت ها مشکل دارند یه سری به آدرس های زیر بزنند. دوست عزیز ما آقای هادی اسکندری در این زمینه زحمت زیادی کشیدند و با استفاده از دات نت 2 تقویم های قدرتمندی رو ساختند که میتونید دانلودشون کنید.

تقویم فارسی با استفاده از دات نت 2 :
http://www.codeproject.com/KB/select...siLibrary.aspx
تقویم فارسی با استفاده از دات نت 3 و موتور گرافیک WPF :
http://www.codeproject.com/KB/WPF/FarsiLibraryFX.aspx
دیگه نگید دات نت تاریخ هجری شمسی نداره.
 :لبخند گشاده!:  :لبخند گشاده!:  :لبخند گشاده!:  :لبخند گشاده!:  :لبخند گشاده!:

----------


## amirferdowsi

سلام به تمامی دوستان
من دارم یک Persian calender می نویسم ولی نمیدونم چرا بجای اینکه از بالا سمت راست شروع کنه و ماه رو نمایش بده ، از پایین سمت چپ اینکار رو انجام میده کدش رو در اینجا قرار دادم اگه لطف کنید من رو در این زمینه راهنمایی کنید ممنون میشم .
پیشاپیش از زحمات و راهنمایی شما دوستان تشکر می کنم .

PersianCalender.rar

----------


## Ner'zhul Arthas

> سلام به تمامی دوستان
> من دارم یک Persian calender می نویسم ولی نمیدونم چرا بجای اینکه از بالا سمت راست شروع کنه و ماه رو نمایش بده ، از پایین سمت چپ اینکار رو انجام میده کدش رو در اینجا قرار دادم اگه لطف کنید من رو در این زمینه راهنمایی کنید ممنون میشم .
> پیشاپیش از زحمات و راهنمایی شما دوستان تشکر می کنم .
> 
> PersianCalender.rar


            lbld = CType(Me.Panel1.Controls(42 - day), Label)

به جای 
            lbld = CType(Me.Panel1.Controls(day - 1), Label)



عجیبه، -این ماه- رو از دوم شروع میکنه. و امروز رو که یک شنبست دوشنبه نشون میده.  :متفکر:

----------


## amirferdowsi

سلام
دوست عزیز از راهنمایی شما متشکرم اون مشکل حل شد ولی نمی دونم چرا بعضی از ماه رو از روز دوم نشون میده و بعضی از ماه های دیگه رو شروع روز هفته رو اشتباه میکنه به عنوان مثال فروردین 1386 از روز چهارشنبه شروع شده که این از روز شنبه نمایش میده
ممنون میشم که راهنماییم بفرمائید

اینم کد برنامه تا به اینجا :FarsiCalender.rar

----------


## Ner'zhul Arthas

مشکل از اینه:

wDay = Persian_Date.GetDayOfWeek(Now_Day)

اول این که یکی باید به نتیجش اضافه بشه.
دوم هم تاریخی که واردش کردید هجری شمسیه که باید میلادی باشه. یعنی داره روز هفته ی تاریخ 1384/9/1 میلادی رو حساب میکنه.

در مورد دکمه های جلو عقب برنده ی ماه هم سال کبیسه و 29 روز بودن ماه های اسفند رو باید بهش اضافه کنید.

----------


## amirferdowsi

سلام
اگه دقت کرده باشید من از توابع PersianCalender استفاده کردم ، حالا چه طور میشه که روز هفته تاریخ میلادی رو برمی گردونه ؟!  :متفکر: 
و حالا برای اینکه بتونم روز هفته تاریخ شمسی رو دربیارم باید چیکار کنم ؟؟

باز هم از زحمات و پاسخهای شما متشکرم.

----------


## Ner'zhul Arthas

PersianCalender تاریخ میلادی رو میگیره نتیجه ی شمسی که میخواید بر میگردونه. شما در اون خط که در ارسال قبلی نوشتم تاریخ شمسی دادید بهش به جای میلادی. در نتیجه فکر میکنه اون تاریخ میلادیه و محاسبات میلادی روش انجام میده.
من نگفتم: "روز هفته تاریخ میلادی رو برمی گردونه."
گفتم: "داره روز هفته ی تاریخ 1384/9/1 میلادی رو حساب میکنه."
روز هفته هم در همه ی دنیا یک جوره.

خلاصه درست اون خط اینه:
wDay = Persian_Date.GetDayOfWeek(sDate.AddDays(-(m_Day - 2))) + 1

now_day هم بدرد نخوره. پاکش کنید.
لیبل های 38 و 38 به بعد هم هیچ وقت به کار نمیاد. پاک کنید.
در نتیجه خط قبلی هم که مشکل داشت میشه:

Lbl_Day = CType(Me.Panel_Day.Controls(37 - day), Label)

یه فور هم تو FarsiCalender_Load هست که تا 41 میره باید بشه تا 36

----------


## amirferdowsi

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

----------


## UnLiMiTeD

کد تبدیل عدد به روز هفته رو ندارید ...؟

----------


## amirsajjadi

منظورتون رو خوب متوجه نشدم میشه بیشتر توضیح بدید

----------


## UnLiMiTeD

یک textbox که عدد رو وارد میکنیم (0 تا 6) و بعد در یک textbox روز هفته (شنبه تا 5 شنبه ) نمایان میشه !!

----------


## amirferdowsi

سلام
دوست عزیز تا اونجا که من اطلاع دارم PersianCalender این امکان رو نداره و باید خودت با Select Case اون رو دربیاری


Dim intday AsInteger
Dim StrName AsString
intday = textbox1.text  ' عدد 0 تا 6 
Select Case intday
Case 0
StrName = "شنبه"Case 1
StrName = "یک شنبه"
Case 2
StrName = "دوشنبه"
Case 3
StrName = "سه شنبه"
Case 4
StrName = "چهارشنبه"
Case 5
StrName = "پنج شنبه"
Case 6
StrName = "جمعه"End Select
 
textbox2.text = StrName

----------


## Sub Zero

> ضمنا دوستانی که تقویم بصری فارسی اجتیاج دارند و با این کامپوننت ها مشکل دارند یه سری به آدرس های زیر بزنند. دوست عزیز ما آقای هادی اسکندری در این زمینه زحمت زیادی کشیدند و با استفاده از دات نت 2 تقویم های قدرتمندی رو ساختند که میتونید دانلودشون کنید.


ظاهرا قسمت نیست ما یه DatePicker خوب گیر بیاریم .پکیج آقای اسکندری هم در عین کامل بودن اشکلات زیادی داره روزهای هفته رو در تقویم فارسی درست نمایش نمیده .
قبلا هم از کاربر Reza1357 یه DatePicker گیر اوردم اما متاسفانه اونم قابلیت Resize شدن رو نداره . خودتون یه نگاهی بهشون بندازید.
لطفا اگه کسی DatePicker فارسی بهتری سراغ داره معرفی کنه .

----------


## aliha499

:لبخند: دوستان عزیز سلام

 :گیج: من هم مثل همه شما در اینترنت بد جوری بدنبال یه dll گشتم که بتونه نیازهای ما رو از نظر تاریخ برطرف کنه. تنها کنترلی که حرفه ای بود و می تونست بیشتر از دیگران نظر مخاطبین رو جلب کنه ، مربوط به آقای هادی اسکندری بود. من تنها موردی که دارم ،اینه که سمپلهای مربوط به این ابزار در#C ساخته شده و هیچ منافاتی با برنامه نویسی VB که من در آن نسبتا تبحر دارم نداره.

 :ناراحت: می دونم که خیلی از دوستان VB کار که مثل من بدنبال یک کنترل خوب تاریخ می گردند ، نیاز به چنین کنترلی دارند. اما با توجه به مشکل سمپل #C نمیتونه مشکل ما رو حل کنه.
پیشنهاد من اینه که دوستان عزیزی که در این تاپیک میایند ، لطف کنند که اگر تجربه ای در مورد DLL آقای هادی اسکندری دارند ، آن را در اینجا بگذارند. خواهش من این است که اگر بتوانند یک سمپل که در VB باشه ارائه بدهند خیلی خوب می شود و کمک شایانی به امثال ما VB کارها کرده اند.

 :اشتباه: من مدت زیادی با این کنترل سر و کله زدم و دست آخر رفتم سراغ PersianToolsPack و تقریبا کارم را راه انداخت. اما کنترل آقای اسکندری جدا روش کار شده و حرفه ای می باشد. استفاده از اون منوط به دونستن زبان #C می باشد که من زیاد ازش سر در نمیارم.

 :تشویق: اگر دوستان موافق باشند ، بیائیم یک تاپیک جدید در مورد این کنترل بسازیم یا در ادامه این تاپیک هم می توانیم به آن بپردازیم تا در مورد تک تک توابع و امکانات این DLL و نحوه استفاده از آن و ویژگیهای آن بحث کنیم. فکر کنم که در پایان بتوانیم استفاده از این کنترل را شایع کنیم تا دیگران نیز با تجربه کم (مثل من) بتوانند از آن بهره مند شوند.

 :متفکر: در پایان بعنوان نظر می گویم که اگر خود آقای هادی اسکندی هم در این امر نقش داشته باشند خیلی بهتر است و من از همین طریق از ایشان دعوت می کنم که در کمک به هموطنان خود سهیم باشند. البته قبلا با ایشان از طریق CodeProject تماس داشته ام.
خوب دوستان نظرتان را بگوئید. اگر بخواهید می توانیم یک تاپیک باز کنیم (البته با در نظر گرفتن نظر مدیر این بخش) یا در ادامه همین تاپیک اقدام کنیم.

برای دسترسی به DLL آقای هادی اسکندری اینجا کلیک کنید و خواهش می کنم که سریع نظرتان را بگوئید تا شروع کنیم.

 :خجالت:  با تشکر از همه دوستان گرامی و عزیز  :خجالت:

----------


## Sub Zero

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

----------


## golihaghighi

موافقم. بهتره یک تاپیک برای این موضوع داشته باشیم.

----------


## linux

> موافقم. بهتره یک تاپیک برای این موضوع داشته باشیم.


من یک قسمت در سایت codeplex درست کردم در آدرس زیر
http://www.codeplex.com/PersianCalendar 
هر کس می خواهد در این پروژه شرکت کند می توان آنجا ثبت نام کند  و بیاد در گروه برنامه نویسان این پروژه
در مورد codeplex که چی هست هر کس خواست بعدا توضیح می دهم.

----------


## golihaghighi

از راهنمایی شما ممنون. سایت خوبی بود.

----------


## saman_itc

به این تاپیک یه نگاه بندازین

----------


## ahmad1880

سلام دوستان عزیز.
من میخواهم وب سرویسی درست کنم که از طریق اون بشه سال شمسی به میلادی و بلعکس تبدیل کرد ؛ 
میخواستم ببینم که این توابع در وب سرویس هم قابل استفاده است؟
و اگه هست لطفا طریقه ساخت اون رو توضیح بدین،
با تشکر فراوان...

----------


## kalali

از ین سورس کد های شما متشکرم  من دنبال سورس vbهستم که تقویم هم میلادی وهم شمسی با اضافه کردن مناسبت های سال باشد اگرممکن سورس اش رابگذارید

----------


## arashkey

سلام به دوست عزیزی که این کامپوننت رو ساختن
راستش من چیزه زیادی نمی دونم، ولی تا اونجایی که من می دونم این برنامه رو می بایست دانلود کرده و فقط کامپایل کنید(اجرا نمی شه چون اجرایی نیست)
بعد dll ساخته شده تو فلدر bin و یا release رو بهToolbar برنامه visual stdio.net اضافه کنید
و این به برنامه شما (#C و VB بودن) ربط پیدا نمی کنه
http://persiancontrol.codeplex.com/R...eleaseId=27464
ولی مشکل اصلی اینه که من از یک دگمه برای اینکه بعضی روزها قرمز بشن استفاده کردم
به این شکل

 persianMonthCalendar1.MarkDates.Add(persianMonthCa  lendar1.Value);

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

   protected override bool ProcessDialogKey(Keys keyData)
        {
            switch (keyData)
            {
                case Keys.Left:
                    {
                        keepFocus = true;
                        if (iSelectedCellIndex < 41)
                        {
                            this.oldSelectedCell = this.selectedCell;
                            this.selectedCell = cells[++iSelectedCellIndex];
                            //iSelectedCellIndex++;
                        }
                        this.Value = this.Value.AddDays(1);
                    }
                    return true;
                case Keys.Right:
                    {
                        keepFocus = true;
                        if (iSelectedCellIndex - 1 >= 0)
                        {
                            this.oldSelectedCell = this.selectedCell;
                            this.selectedCell = cells[--iSelectedCellIndex];
                            //iSelectedCellIndex--;
                        }
                        this.Value = this.Value.AddDays(-1);
                    }
                    return true;
                case Keys.Up:
                    {
                        keepFocus = true;
                        if (iSelectedCellIndex - 7 >= 0)
                        {
                            this.oldSelectedCell = this.selectedCell;
                            this.selectedCell = cells[iSelectedCellIndex - 7];
                            iSelectedCellIndex -= 7;
                        }
                        this.Value = this.Value.AddDays(-7);
                    }
                    break;
                case Keys.Down:
                    {
                        keepFocus = true;
                        if (iSelectedCellIndex + 7 < 42)
                        {

                            this.oldSelectedCell = this.selectedCell;
                            this.selectedCell = cells[iSelectedCellIndex + 7];
                            iSelectedCellIndex += +7;
                        }
                        this.Value = this.Value.AddDays(7);
                    }
                    break;
                case Keys.Enter:
                case Keys.Escape:
                    {
                        keepFocus = false;
                        if (PopupClosed != null)
                            PopupClosed(this, EventArgs.Empty);
                    }
                    return true;
                case Keys.Tab:
                    keepFocus = false;
                    break;
            }
            return base.ProcessDialogKey(keyData);
        }
        #endregion
        //public override void Refresh()
        //{///com/
        //    var pe = Value;
        //    this.Value = new FreeControls.PersianDate(1380, 1, 1);
        //    this.Value = pe;
        //}

        #endregion

----------


## tabriz3edu

دوستان عزيزي كه مطلب نوشتند واقعا دستشان درد نكنه

----------


## رضا نانوا

تقویم بین المللی

----------


## yones_62

> ظاهرا قسمت نیست ما یه DatePicker خوب گیر بیاریم .پکیج آقای اسکندری هم در عین کامل بودن اشکلات زیادی داره روزهای هفته رو در تقویم فارسی درست نمایش نمیده .
> قبلا هم از کاربر Reza1357 یه DatePicker گیر اوردم اما متاسفانه اونم قابلیت Resize شدن رو نداره . خودتون یه نگاهی بهشون بندازید.
> لطفا اگه کسی DatePicker فارسی بهتری سراغ داره معرفی کنه .


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

----------


## masoud4

> نقل از سایت شهابفر
> تبدیل تاریخهای میلادی، شمسی و قمری به یکدیگر
> با توجه به در اختیار نبودن اطلاعاتی در مورد تقویم هجری شمسی (جلالی) در کتابخانه NET. برنامه نویسان ایرانی همواره خود به دنبال راه حلهایی جهت گنجاندن قابلیت استفاده از تقویم شمسی در برنامه های کاربردی خود می باشند. 
> Persia API یک کتابخانه با استفاده رایگان می باشد که برنامه نویسان به کمک آن می توانند به راحتی و تنها با یک یا دو خط کدنویسی تاریخهای هجری شمسی، هجری قمری و میلادی را در برنامه های مبتنی بر NET. به یکدیگر تبدیل نمایند. 
> Persia API از جمله کتابخانه هایی است که امکان استفاده از تقویم هجری شمسی شامل تبدیل آن به تاریخ های میلادی و هجری قمری و بالعکس را دارا می باشد. با آنکه کتابخانه NET. اطلاعات مربوط به تقویم هجری قمری ( تقویم اسلامی) را در خود گنجانده است، ولی با همه اینها کتابخانه Persia قابلیت تبدیل تاریخ میلادی به هجری قمری و با لعکس را به روش ساده تری مهیا نموده است
> 
> Persia API 
> 
> 
> ...



ممنون :لبخند:

----------


## morteza4

> آقا یکی به ما بگه وقتی این وب سایت که در این انجمن ازش نام برده شده ، با این همه ایراد دست و پنجه نرم می کنه! ، چرا باید تبلیغ بشه. من مدتهاست که در این انجمن این نوضوع را می بینم و هر بار که به سراغ سایت اون رفتن دیدم که ایراد داره و کار نمی کنه؟
> 
> بهتره این تاپیک حذف بشه تا اشخاص مراجعه کننده دیگر سر کار نمونن...!
> 
> بهروز علیها


مولفقم
تختش کنید دوستان !

----------


## rezabojnordi

من الان دارم یک ماژول مینویسم به ایمیلم درخواستتون رو بفرستید که من برای شما ماژول بفرستم bojnordireza@yahoo.com

----------


## mahsa69

لینکایی اقای زواره که خرابه! :(

----------


## MOS245

آقا دستت درد نکنه خیلی بدردم خورد

----------

