تبدیل تاریخها با استفاده از 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;