سلام دوستان، یک برنامه با زبان سی شارپ دارم مینویسم. میخوام بدونم برای نگهداری تاریخ ها از DateTime استفاده کنم یا varchar
می خوام توی پروژه تاریخ رو به صورت شمسی نمایش بدم و استفاده کنم. همچنین این مشکل رو برای وب هم دارم.
لطفا نحوه تبدیل تاریخ میلادی به شمسی و بالعکس در سی شارپ رو بگید چجوری هست؟
شما برای تاریخ و نگهداری تاریخ در دیتابیس همیشه از DateTime استفاده کنید. چون اگر از نوع Varchar استفاده کنید و تاریخ رو به صورت رشته نگهداری کنید بعدا ممکنه دچار مشکل بشید.
برخی از مشکلات نگهداری تاریخ به صورت Varchar :
ولی وقتی تاریخ رو به صورت 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');
خب بعد از اجرای دستور بالا میبینید که تاریخ شمسی شما به میلادی تبدیل شده و میتونید در دیتابیس اونو ذخیره کنید یا ...
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
72
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
107
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
427
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4797
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
596
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
212
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
116
- پاسخ :
0
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2006
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
72
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
107
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
427
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4797
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
596
- پاسخ :
1
|