PersianDateTime جایگزینی برای System.DateTime
نویسنده: رحمت اله رضایی
تاریخ: ۱۳۹۲/۰۳/۱۰ ۱۷:۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
PersianDateTime now = PersianDateTime.Now;
string persianDateTime = now.ToString(); // 1392/03/09 23:37:57
string persianDate = now.ToString(PersianDateTimeFormat.Date); // 1392/03/09
string persianFullDateTime = now.ToString("dddd d MMMM yyyy ساعت hh:mm:ss tt"); // پنج شنبه 9 خرداد 1392 ساعت 11:37:57 ب.ظ
TimeSpan persianTime = now.TimeOfDay; // 23:37:57.4641984مقدار پیشفرض PersianDateTime.PersianTimeZoneInfo برابر Iran Standard Time Zone است. توجه داشته باشید که در این حالت از DaylightSavingTime تعیین شده در Time Zone استفاده خواهد شد که مثلا برای ایران با زمان واقعی آن اختلاف دارد و باید آنرا اصلاح کرد .
مقدار پیشفرض PersianDateTime.OffsetFromUtc برابر 3 ساعت و نیم است. در این حالت DaylightSavingTime با توجه به مقادیر سه فیلد استاتیک DaylightSavingTimeStart ،DaylightSavingTimeEnd و DaylightSavingTime تعیین میشود که به صورت پیشفرض برابر ساعت 24 اول فروردین، ساعت 24 سیام شهریور و یک ساعت است.
PersianDateTime persianDate1 = PersianDateTime.Parse("1392/03/02");
PersianDateTime persianDate2 = PersianDateTime.Parse("1392/03/02", "23:32:56");PersianDateTime persianDate1 = new PersianDateTime(13920310); PersianDateTime persianDate2 = new PersianDateTime(13920310, 233256); PersianDateTime persianDate3 = new PersianDateTime(13920310, (short)2332);
DateTime miladiDate = new DateTime(2013, 5, 31); PersianDateTime persianDate = new PersianDateTime(miladiDate);
PersianDateTime persianDate = PersianDateTime.Parse("1392/03/02");
DateTime miladiDate = persianDate.ToDateTime();public string ToString(PersianDateTimeFormat format); public string ToString(string format);
برخی دیگر از متدهای کلاس PersianDateTime :
public PersianDateTime Add(TimeSpan value); public PersianDateTime AddDays(double value); public PersianDateTime AddMonths(int months); public PersianDateTime AddYears(int value); public PersianDateTime AddHours(double value); public PersianDateTime AddMinutes(double value); public PersianDateTime AddSeconds(double value);
string persianFullDateTime = now.ToString( "dddd d MMMM yyyy ساعت hh:mm:ss tt" ); //
public PersianDateTime EnrollmentDate { get; set; } using (var db = new DBTestEntities())
{
dataGridView1.DataSource =(from t in db.test
select new
{
Id= t.Id,
time = new PersianDateTime( DateTime.Parse(t.ResponseDate.ToString())).ToString(PersianDateTimeFormat.DateShortTime)
}).ToList();
} using System;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// این قسمت برای ورود اطلاعات به بانک است و با کمک کتابخانه پرژن دات نت تاریخ شمسی را به میلادی تبدیل و ذخیره میکنم
using(var db = new h7Entities())
{
var t = new test
{
ResponseDate = PersianDateTime.Parse(textBox1.Text).ToDateTime()
};
db.test.Add(t);
db.SaveChanges();
}
}
private void Form1_Load(object sender, EventArgs e)
{
// این قسمت هم فقط اطلاعات واکشی شده را در گرید نمایش میدهد . بدون هیچ شرطی ، یک سلکت ساده . . فقط از پرژن دانت نت برای تبدیل میلادی به شمسی کمک میگیرم
using (var db = new h7Entities())
{
dataGridView1.DataSource =(from t in db.test
select new
{
Id= t.Id,
time = new PersianDateTime(DateTime.Parse(t.ResponseDate.ToString())).ToString(PersianDateTimeFormat.DateShortTime)
}).ToList();
}
}
}
} public partial class test
{
public int Id { get; set; }
public Nullable<System.DateTime> ResponseDate { get; set; }
}
new PersianDateTime(t.ResponseDate.Value).ToString(PersianDateTimeFormat.DateShortTime)
/// <summary>
/// Initializes a new instance of the PersianDateTime class to a specified dateTime.
/// </summary>
/// <param name="dateTime">A date and time in the Gregorian calendar.</param>
public PersianDateTime(DateTime dateTime)
{
_dateTime = dateTime;
} PersianDateTime persianDate2 = PersianDateTime.Parse("1392/03/02 23:32:56"); "1395/11/3 7:30".ToGregorianDateTime()
var dateTime = PersianDateTime.Parse(date, $"{hours.ToString("00")}:{minutes.ToString("00")}:{seconds.ToString("00")}").ToDateTime();