آموزش استفاده از تاریخ شمسی در سی شارپ به زبان ساده و کاربردی
برای استفاده از تاریخ شمسی (هجری شمسی) در سیشارپ، میتوانید از کلاسهای داخلی داتنت، مانند PersianCalendar، استفاده کنید که از تقویم هجری شمسی پشتیبانی میکند. این کلاس در فضای نام System.Globalization قرار دارد و امکان انجام عملیات مختلف مانند تبدیل تاریخ میلادی به شمسی، اضافه کردن روز، ماه یا سال، و دریافت اجزای مختلف تاریخ را فراهم میکند.
استفاده از PersianCalendar
1. تبدیل تاریخ میلادی به شمسی
using System;
using System.Globalization;
class Program
{
static void Main()
{
// تاریخ میلادی کنونی
DateTime currentDate = DateTime.Now;
// نمونهسازی از تقویم شمسی
PersianCalendar persianCalendar = new PersianCalendar();
// استخراج اجزای تاریخ شمسی
int year = persianCalendar.GetYear(currentDate);
int month = persianCalendar.GetMonth(currentDate);
int day = persianCalendar.GetDayOfMonth(currentDate);
// نمایش تاریخ شمسی
Console.WriteLine($"تاریخ شمسی: {year}/{month:00}/{day:00}");
}
}
2. تبدیل تاریخ شمسی به تاریخ میلادی
برای تبدیل یک تاریخ شمسی به تاریخ میلادی:
using System;
using System.Globalization;
class Program
{
static void Main()
{
// نمونهسازی از تقویم شمسی
PersianCalendar persianCalendar = new PersianCalendar();
// تعریف تاریخ شمسی
int year = 1402;
int month = 9;
int day = 22;
// تبدیل به تاریخ میلادی
DateTime gregorianDate = persianCalendar.ToDateTime(year, month, day, 0, 0, 0, 0);
// نمایش تاریخ میلادی
Console.WriteLine($"تاریخ میلادی: {gregorianDate.ToString("yyyy-MM-dd")}");
}
}
3. افزودن روز یا ماه به تاریخ شمسی
using System;
using System.Globalization;
class Program
{
static void Main()
{
// نمونهسازی از تقویم شمسی
PersianCalendar persianCalendar = new PersianCalendar();
// تعریف تاریخ شمسی
int year = 1402;
int month = 9;
int day = 22;
// تبدیل به تاریخ میلادی
DateTime gregorianDate = persianCalendar.ToDateTime(year, month, day, 0, 0, 0, 0);
// افزودن 10 روز به تاریخ
DateTime newDate = gregorianDate.AddDays(10);
// تبدیل تاریخ جدید به شمسی
int newYear = persianCalendar.GetYear(newDate);
int newMonth = persianCalendar.GetMonth(newDate);
int newDay = persianCalendar.GetDayOfMonth(newDate);
// نمایش تاریخ جدید شمسی
Console.WriteLine($"تاریخ جدید شمسی: {newYear}/{newMonth:00}/{newDay:00}");
}
}
4. قالببندی و نمایش تاریخ شمسی
اگر میخواهید تاریخ را با فرمت خاصی نمایش دهید:
using System;
using System.Globalization;
class Program
{
static void Main()
{
// تاریخ میلادی کنونی
DateTime currentDate = DateTime.Now;
// نمونهسازی از تقویم شمسی
PersianCalendar persianCalendar = new PersianCalendar();
// استخراج اجزای تاریخ شمسی
int year = persianCalendar.GetYear(currentDate);
int month = persianCalendar.GetMonth(currentDate);
int day = persianCalendar.GetDayOfMonth(currentDate);
// نمایش تاریخ با فرمت سفارشی
string persianDate = $"{year}/{month:00}/{day:00}";
Console.WriteLine($"تاریخ شمسی: {persianDate}");
}
}



