سی شارپ

تقویم شمسی در سی شارپ

شاید برای شما هم پیش آمده باشد که در برنامه خود نیاز به مبدلی برای تبدیل تاریخ میلادی به شمسی و بالعکس داشته باشید. اگر بخواهید این مبدل را خودتان کدنویسی کنید، با دردسرهای فراوانی مانند پیدا کردن ارتباط و اختلاف تقویم شمسی و میلادی، نحوه محاسبه سال کبیسه و… روبرو خواهید شد. خوشبختانه زبان برنامه نویسی سی شارپ امکان تبدیل تقویم میلادی به شمسی و بالعکس را به سادگی برای شما فراهم میکند. این مبدل در کلاسی به نام PersianCalendar در مرجع System.Globalization تعبیه شده است و به راحتی می توان از آن استفاده کرد. برای  این منظور، ابتدا این مرجع را به لیست مراجع پروژه خود اضافه کنید:


using System.Globalization;

حال می توانید از جنس کلاس PersianCalendar یک شی بسازید و از امکانات تقویم شمسی که در این کلاس موجود است، استفاده کنید:


PersianCalendar jc = new PersianCalendar();

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

DateTime dt = DateTime.Now;
PersianCalendar jc = new PersianCalendar();
string year= jc.GetYear(dt).ToString();
string month += jc.GetMonth(dt).ToString();
string day += jc.GetDayOfMonth(dt).ToString();
string date = String.Format("{0}/{1}/{2}",year,month,day);

پس از اجرای قطعه کد بالا، محتوای متغیر date معادلِ شمسیِ تاریخ کنونی سیستم خواهد بود.

تشخیص کبیسه بودن سال:

PersianCalendar jc = new PersianCalendar();
if(jc.IsLeapYear(1393))
    {
        MessageBox.Show("سال کبیسه است");
    }
else
    {
        MessageBox.Show("سال کبیسه نیست");
    }

در مثال فوق اگر سال وارد شده(۱۳۹۳ در این مثال) کبیسه باشد، پیامی با متن “سال کبیسه است” نمایش داده خواهد شد. در غیر اینصورت پیام “سال کبیسه نیست” نمایان خواهد شد.

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

PersianCalnedar jc = new PersianCalendar();
DateTime dt = jc.ToDateTime(1393,3,1,0,0,0,0);

در مثال فوق پارامترهایی که به متد ToDateTime داده شده اند، به ترتیب: سال، ماه، روز، ساعت، دقیقه، ثانیه و میلی ثانیه هستند.

shamsiDate2

همچنین می توانید نمونه پروژه مربوط به این آموزش را دانلود نمایید:
پسورد فایل: www.myempire.ir

دریافت نمونه پروژه

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

بررسی کلی

امتیاز کاربر: 4.73 ( 5 رای)
0

۲ دیدگاه

  1. سلام
    خیلی خوب بود. استفاده کردم.
    ممنون

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نخواهد شدعلامتدارها لازمند *

*

theme