PDA

View Full Version : سوال: مشکل با تاریخ



navid1n2000
جمعه 15 خرداد 1388, 13:02 عصر
من الان دوتا متغیر تاریخ دارم :


DateTime Tozviat,Ttoday;

برای اینکه تفاضل این دو تا تاریخو حساب کنم اینجوری کردم :


lbltsal.Text = (Ttoday.Year - Tozviat.Year).ToString();
lbltmah.Text = (Ttoday.Month - Tozviat.Month).ToString();
lbltrooz.Text = (Ttoday.Day - Tozviat.Day).ToString();

ولی این روش درستی نیست . میخوام بپرسم روش دیگه ایی یا تابعی هست که تفاضل دو تا تاریخو درست حساب کنه

navid1n2000
جمعه 15 خرداد 1388, 15:53 عصر
سلام

دوست عزیز شما میتوانید به راحتی دو تا متغیر از توع DateTime را از هم کم یا با هم جمع کنید.
میشه بگین چطوری؟؟؟؟؟؟؟؟؟؟؟؟؟

Reza_Yarahmadi
جمعه 15 خرداد 1388, 18:58 عصر
شما میتونید با همون عملگرهای - و + مجموع و اختلاف بین دو تاریخ رو پیدا کنید.
تنها نکته اینه که نتیجه اختلاف دو تاریخ رو باید در یه شئ از نوع TimeSpan ذخیره کنی. همین!

navid1n2000
جمعه 15 خرداد 1388, 21:54 عصر
ببخشید !!!!!!!!! ولی من باز نتونستم


Ttoday = Convert.ToDateTime(lbltsal.Text);
Tozviat = Convert.ToDateTime(txtDate.Text);
TimeSpan n;
n = Ttoday - Tozviat;

این کارو انجام دادم
اما باز نشد ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

Reza_Yarahmadi
شنبه 16 خرداد 1388, 00:51 صبح
احتمالا مشکل از کد زیر باشه


Ttoday = Convert.ToDateTime(lbltsal.Text);
Tozviat = Convert.ToDateTime(txtDate.Text);

چون خودم بارها این کارو انجام دادم .
بعد از تبدیل با DateTime چک کنید که آیا به فرمتی که میخواستید به تاریخ تبدیل شده یا نه؟

navid1n2000
شنبه 16 خرداد 1388, 00:59 صبح
بله کاملا
ولی جوااب تفاضی خیلی خیلی گنگه . اینه : 5309:00:00:00
چاره ی من چیه ؟

hassan razavi
شنبه 16 خرداد 1388, 03:58 صبح
جواب تفریق رو در یک متغیر از جنس DateTime بریزید


DateTime Tozviat,Ttoday,result;
result=tozihat-ttoday;

farhud
شنبه 16 خرداد 1388, 08:33 صبح
من فكر مي‌كنم مشكل با تاريخ ظاهرا حل نشدني است. كاري كه بنده انجام دادم و فكر مي‌كنم كه همه جوره مي‌شه ازش استفاده كرد اينه كه به جاي اينكه فرمت تاريخ را DateTime در نظر بگيري، عدد در نظر بگير.
براي اين كار هم ميشه روز و ماه و سال را به طور جداگانه در TextBox دريافت كرد و با هم جمع كرد و سپس تبديل به عدد كرد. بعد از اين شما هر كاري كه بخواهيد مي‌توانيد با اين اعداد انجام دهيد.

happy65_sh
شنبه 16 خرداد 1388, 11:51 صبح
دوست عزیز دقیقا مشکل چیه؟
نمونه ی زیر را ببین اگه بازهم مشکلی بود مشکلت را واضح بیان کن



TimeSpan ts;
ts = DateTime.Parse(textBox1.Text.Trim()) - DateTime.Parse(textBox2.Text.Trim());
label1.Text = ts.TotalDays.ToString();
label2.Text = ts.TotalHours.ToString();
label3.Text = ts.TotalMinutes.ToString();



ولی جواب تفاضل خیلی خیلی گنگه . اینه : 5309:00:00:00
5309:00:00:00 به ترتیب نشان دهنده روز ,ساعت,دقیقه و ثانیه هست .در مثال شما تفاضل تاریخ هایی که مقایسه کردین 5309 روز هست.

Reza_Yarahmadi
شنبه 16 خرداد 1388, 21:59 عصر
همونطور که دوستمون گفتند اختلاف بصورت روز و ساعت و ... بدست میاد مگه شما چیزی غیر از این میخواید؟

در ضمن نتیجه تفاضل دو تاریخ ، از نوع TimeSpan است و نمیشه مستقیما به یه DateTime نسبتش داد (قابل توجه دوست عزیزمون hassan razavi (http://barnamenevis.org/forum/member.php?u=5419))