آموزش استفاده از تاریخ شمسی در سی شارپ به زبان ساده و کاربردی
برای استفاده از تاریخ شمسی (هجری شمسی) در سیشارپ، میتوانید از کلاسهای داخلی داتنت، مانند 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}");
}
}