PDA

View Full Version : سوال: میخواهم از فرمت تاریخ کوتاه استفاده کنم.



nazaninzahra_mnm
پنج شنبه 15 مهر 1389, 15:32 عصر
من در جدولم در Sql Server 2008 فیلدی به نام تاریخ تولد دارم و از نوع Date تعریف کرده ام.
حال در #C میخواهم از یک MaskedTextBox برای واردکردن تاریخ تولد استفاده کنم.و فرمت تاریخ هم به صورت مثلا 10/10/1380 باشد.
سوال اینکه اولا در کلاسی که در #C تاریخ تولد را تعریف کرده ام آنرا از چه نوعی تعریف کنم(من از DateTimeاستفاده کردهام.)
دوما رو بعدا میپرسم

nazaninzahra_mnm
پنج شنبه 15 مهر 1389, 15:57 عصر
خواهش میکنم یکی جوابمو بده

AmirAmiri
پنج شنبه 15 مهر 1389, 17:20 عصر
من در جدولم در Sql Server 2008 فیلدی به نام تاریخ تولد دارم و از نوع Date تعریف کرده ام.
حال در C#‎‎‎‎ میخواهم از یک MaskedTextBox برای واردکردن تاریخ تولد استفاده کنم.و فرمت تاریخ هم به صورت مثلا 10/10/1380 باشد.
سوال اینکه اولا در کلاسی که در C#‎‎‎‎ تاریخ تولد را تعریف کرده ام آنرا از چه نوعی تعریف کنم(من از DateTimeاستفاده کردهام.)
دوما رو بعدا میپرسم

باید از DateTime استفاده کنی و توی دیتابیس هم نباید تاریخ رو با فرمت شمسی ذخیره کنی کاره اشتباهیه. باید با فرمت میلادی استفاده کنی.
توی دیتا بیس نوع فیلد رو smalldatetime بزار تا فرمت تاریخ کوتاه را داشته باشه.
وقتی میخوای تاریخ تولد رو ذخیره کنی باید به این صورت بنویسی :
textBox1.Text = DateTime.Now.ToShortDateString();
اینکار باعث میشه فرمت تاریخ به صورت کوتاه شده نمایش داده بشه و برای ذخیره سازی توی دیتابیس هم مشکلی پیش نمیاد.
زمانی که میخوای تاریخ رو از دیتابیس دریافت کنی، باید یک تبدیل کوچولو انجام بدی.
با استفاده از PersianCalendar میتونی تاریخ شمسی رو به میلادی و بلعکس تبدیل کنی.
برای اینکار باید خط زیر رو در قسمت using ها بنویسی :
using System.Globalization;
و توی برنامه هم به این صورت تاریخ میلادی رو به شمسی تبدیل کنی :
PersianCalendar pc = new PersianCalendar();
DateTime dt = new DateTime();
dt = pc.ToDateTime(1389, 7, 15, 0, 0, 0, 0);
txtDate.Text = dt.ToShortDateString();

برای تبدیل میلادی به شمسی :
PersianCalendar pc = new PersianCalendar();
txtDate.Text = pc.GetYear(DateTime.Now).ToString() + "\\"
+ pc.GetMonth(DateTime.Now).ToString() + "\\"
+ pc.GetDayOfMonth(DateTime.Now).ToString();


امیدوارم مفید بوده باشه.
موفق و پیروز باشی.