تبدیل تاریخ ها با استفاده از Persia .NET 2.0
گروه: .NET
تاریخ ثبت: ۸۵/۱۰/۱۹
نویسنده: مجید شهاب فر

تبدیل تاریخها با استفاده از Persia .NET 2.0 

کتابخانه Persia ( نسخه 2.0) شامل چند کلاس مختلف در قالب یک فایل 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, Persia.DateType.Gerigorian);

 

// converting from Islamic to Persian date

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

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

 

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

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

 

مثال:

 

 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;

 bool isLeapYear = sunDate.IsLeapYear;

 

 

تبدیل تاریخ شمسی به میلادی:

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

 

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

 // 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);

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

 // converting from Gregorian to Islamic date

 Persia.Calendar.ConvertToIslamic(DateTime datetTime);

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

 

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

Sample Data Type Description Property
  int یک آرایه ۳ عضوی از نوع int شامل عدد روز، ماه و سال Array Type
۱۴۲۶/۵/۱ string فرمت عددی تاریخ قمری Simple
اِلأَربِعا ۱ جمادي الاولي ۱۴۲۶ string تاریخ قمری به همراه روز هفته Formal
0=شنبه و 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 .NET به همراه مثال های تکمیلی.

 


Copyright © 2006 - 2011 All Rights Reserved.
Please direct your questions or comments to