PDA

View Full Version : مبتدی: کار با تاریخ در برنامه و تبدیل آن



mreza80
سه شنبه 07 آذر 1391, 14:36 عصر
با سلام
دوستان من در برنامه نویسی سی شارپ مبتدی هستم تمامی تاپیکهای مربوط به تاریخ و تبدیل آن رو دقیقا خوندم خواهش میکنم از استاتید کمکم کنید من مشغول تهیه نرم افزاری میباشم که با تاریخ زیاد سرو و کار دارد لطفا اساتید راهنمائی نمایند که تاریخ رو در دیتابیس به چه فرمتی ذخیره کنم بهتره و چرا
دوم اینکه یک سورس کلاس شسته و رفته برای تبدیل میلادی به شمسی و برعکس میشه به دست آورد یا نه مرسی ار توجه حضرات

danialafshari
سه شنبه 07 آذر 1391, 14:54 عصر
سلام دوست عزیز
بهتره برای ذخیره تاریخ از String استفاده کنی که راحت // ذخیره شود
---------------------------------------------------------------
تبدیل تاریخ میلادی به شمسی :
using System.Globalization;
public string DateToday(DateTime _date)
{
PersianCalendar pc = new PersianCalendar();
StringBuilder sb = new StringBuilder();
sb.Append(pc.GetYear(_date).ToString("0000"));
sb.Append("/");
sb.Append(pc.GetMonth(_date).ToString("00"));
sb.Append("/");
sb.Append(pc.GetDayOfMonth(_date).ToString("00"));
return sb.ToString();
}
//--------------
string strtoday = DateToday(DateTime.Now);
//--------------

private void button1_Click(object sender, EventArgs e)
{
string strtoday = DateToday(Convert.ToDateTime("1993/09/26"));
MessageBox.Show(strtoday);
}
-------------------
تبدیل تاریخ شمسی به میلادی
using System.Globalization‎;‎

PersianCalendar pc = new PersianCalendar();
DateTime d = pc.ToDateTime(1391, 7, 4, 0, 0, 0, 0);
موفق باشی

hakim22
سه شنبه 07 آذر 1391, 14:56 عصر
در دیتابیس SQL بهترین گزینه برای ذخیره تاریخ DateTime2 است.

با استفاده از دستور زیر شما تقویم فارسی دارید که با دادن مقادیر میلادی مقادیر شمسی آن را به صورت string بر میگرداند

system.globalization.persiancalender pc=new sytem.globalization.persiancalender();

mreza80
سه شنبه 07 آذر 1391, 16:04 عصر
دوستان دو پاسخ دو نظر
خواهشا یکی از استاید جواب مارو بده با دلیل

SEZAR.CO
سه شنبه 07 آذر 1391, 16:39 عصر
اقایhakim22 (http://barnamenevis.org/member.php?244339-hakim22) دوسمون گفت که من یه مبتدی ام و من ا به حال ادم مبتدی که sql بلد باشه ندیدم
من با نظر اول موافقم چون ورودی string قابلیت نگهداری کاراکترهای بیشتری را داراست و استفاده از ان اسان تر است

mahdi_7610
سه شنبه 07 آذر 1391, 16:44 عصر
من هم با نوع string موافقم.

samadblaj
سه شنبه 07 آذر 1391, 16:50 عصر
خوب مبتدی باشه باید روش بهینه و اصولی رو از ابتدا یاد بگیره یا نه... به اعتقاد من چون شما از روش string استفاده کردید این دلیل رو دارید در غیر این صورت روش دوم datetime2 با طول بیشتر مختص این مورد خواهد بود...

SEZAR.CO
سه شنبه 07 آذر 1391, 17:08 عصر
ولی من ندیدم کسی را که تا وقتی خوده سی شارپ خوب یاد نگرفته بره سراغ پایگاه داده:متعجب:

samadblaj
سه شنبه 07 آذر 1391, 17:25 عصر
ولی من ندیدم کسی را که تا وقتی خوده سی شارپ خوب یاد نگرفته بره سراغ پایگاه داده:متعجب:


دوستان من در برنامه نویسی سی شارپ مبتدی هستم تمامی تاپیکهای مربوط به تاریخ و تبدیل آن رو دقیقا خوندم خواهش میکنم از استاتید کمکم کنید من مشغول تهیه نرم افزاری میباشم که با تاریخ زیاد سرو و کار دارد لطفا اساتید راهنمائی نمایند که تاریخ رو در دیتابیس به چه فرمتی ذخیره کنم بهتره و چرا
دوم اینکه یک سورس کلاس شسته و رفته برای تبدیل میلادی به شمسی و برعکس میشه به دست آورد یا نه مرسی ار توجه حضرات

به هر صورت من خودمم دنبال تشخیص و تحلیل یه زمان استاندارد هستم ولی به صورت string رو نمی پسندم...

mreza80
چهارشنبه 08 آذر 1391, 08:24 صبح
با سلام مجدد
ضمن عرض تشکر از دوستان که زحمت کشیدند و جواب دادند توجه دوستان به این نکته جلب میکنم که من حدود 10 سال با دلفی برنامه نویسی کردم و در مبحث سی شارپ مبتدی میباشم توی دلفی برای جلوگیری از خطاهای احتمالی در سیستمهای تحت شبکه ما معمولا دو فیلد تاریخ برای نگهداری شمسی و میلادی استفاده میکردیم درست کارمان اشتباه بود ولی ناچار بودیم برای جستجو با فیلد از نوع تاریخ میلادی کار میکریم و برای نمایش فیلد شمسی رو به کاربر ارسال میکردیم دوباره میگم کارمان اشتباه بود ولی ناچار بودیم
حالا در بررسی که توی این سایت و جاهای دیگه انجام دادم دیدم نیازی به اینکار نیست و با توجه به اینکه هر دو محصول یک شرکت هستند این مشکل وجود ندارد
خواهشا شما مبتدی بودن من رو در نظر نگیرید و اعلام کنید در برنامه های درست و حسابی تاریخ رو باید به چه فرمتی باید ذخیره کرد و در صورت امکان کلاسهای مربوطه را برایم توضیح دهید قبلا از توجه شما متشکرم

masoodz
چهارشنبه 08 آذر 1391, 19:42 عصر
بهترین گزینه datatime هست