دسته بندی ها
01:23 1399/06/19

تبدیل تاریخ میلادی به شمسی و بالعکس در سی شارپ

مشخصات سوال کننده :
کاربر : pedram_khan     امتیاز کاربر : 277     رتبه کاربر : 6
دسته بندی : Asp.net Mvc Asp.net Core Asp.net Web Form سی شارپ

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 18603
پاسخ دهنده : saedbfd 14:31 1399/06/21

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

 

برخی از مشکلات نگهداری تاریخ به صورت Varchar :

  • مشکل هنگام جستجو در بین تاریخ در نرم افزار
  • ایجاد مشکل وقتی قصد دارید مثلا 10 روز به تاریخ اضافه کنید یا کم کنید.
  • مشکل داشتن جهت مقایسه بین تاریخ
  • و ...

ولی وقتی تاریخ رو به صورت DateTime ذخیره کنید به راحتی می تونید جستجو، مقایسه، کم و زیاد کردن به تاریخ، تبدیل تاریخ به ساعت، دقیقه، ثانیه، روز، ماه، سال و ... رو انجام بدید.

 

تبدیل تاریخ میلادی به شمسی و بالعکس در سی شارپ

خب حالا برای اینکه بتونید از این تاریخ DateTime توی پروژه خودتون استفاده کنید و در پروژه نمایش بدید میتونید یک کلاس ایجاد کنید و اسمش رو مثلا بذارید ConvertDateTime و دستورات زیر رو داخلش بنویسید :

 

using MD.PersianDateTime.Core;
using System;
   
public static class ConvertDateTime
{
    public static DateTime ConvertShamsiToMiladi(string date)
    {
        PersianDateTime persianDateTime = PersianDateTime.Parse(date);
        return persianDateTime.ToDateTime();
    }

    public static string ConvertMiladiToShamsi(this DateTime? date, string format)
    {
        PersianDateTime persianDateTime = new PersianDateTime(date);
        return persianDateTime.ToString(format);
    }
}

 

خب در کلاس ConvertDateTime ما دو تابع رو تعریف کردیم که در ادامه میگیم نحوه استفاده از هر کدوم به چه صورتی هست.

نکته : دقت کنید که در دستورات بالا از کتابخانه MD.PersianDateTime.Core هم استفاده شده که شما باید از طریق nuget این کتابخانه ر به پروژه خودتون اضافه کنید تا دستورات استفاده شده رو بشناسه.

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

برای تبدیل تاریخ های میلادی به شمسی در سی شارپ و نمایش اون در پروژه میتونید از تابع ConvertMiladiToShamsi استفاده کنید. نحوه استفاده از این تابع هم در مثال زیر نمایش داده شده :

 

ConvertDateTime.ConvertMiladiToShamsi('2020-05-15','yyyy/MM/dd');

 

در مثال بالا خواهید دید که تاریخ به صورت شمسی و با فرمتی که تعیین شده نمایش داده میشه.

 

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

برای تبدیل تاریخ شمسی به میلادی در سی شارپ هم میتونید از تابع ConvertShamsiToMiladi استفاده کنید. در مثال زیر نحوه انجام این کار رو میتونید ببینید :

 

ConvertDateTime.ConvertShamsiToMiladi('1399/05/15');

خب بعد از اجرای دستور بالا میبینید که تاریخ شمسی شما به میلادی تبدیل شده و میتونید در دیتابیس اونو ذخیره کنید یا ...

به این پاسخ امتیاز بدهید    1
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود