PDA

View Full Version : تفریق تاریخ به این صورت



ghamgin
پنج شنبه 22 فروردین 1392, 18:05 عصر
سلام
من دوتا تاریخ این جوری دارم چطور از هم کمشون کنم؟؟
07/11/2013
ممنون

C#‎_best_Programmer
پنج شنبه 22 فروردین 1392, 18:11 عصر
دادشم یه کلاس هست به اسم تایم اسپن


TimeSpane timeSpan=new TimeSpan();
timeSpane=DateTime.Now()-new DateTime(Convert.ToDateTime("تاریخ"));

alexmcse
پنج شنبه 22 فروردین 1392, 20:31 عصر
سلام
System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);

// diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);

// date4 gets 4/9/1996 5:55:00 PM.
System.DateTime date4 = date3.Subtract(diff1);

// diff2 gets 55 days 4 hours and 20 minutes.
System.TimeSpan diff2 = date2 - date3;

// date5 gets 4/9/1996 5:55:00 PM.
System.DateTime date5 = date1 - diff2;

tooraj_azizi_1035
پنج شنبه 22 فروردین 1392, 20:36 عصر
سلام
شما که یه تاریخ بیشتر نذاشتی:

System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
System.DateTime date3 = new System.DateTime(1996, 10, 12, 8, 42, 0);

// diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);

// date4 gets 4/9/1996 5:55:00 PM.
System.DateTime date4 = date3.Subtract(diff1);

// diff2 gets 55 days 4 hours and 20 minutes.
System.TimeSpan diff2 = date2 - date3;

// date5 gets 4/9/1996 5:55:00 PM.
System.DateTime date5 = date1 - diff2;

ghamgin
جمعه 23 فروردین 1392, 08:42 صبح
سلام
ممنون از همه
اما من دو تا تاریخ به این صورت دارم
04/11/2013
08/10/2013
نه این جوری (در واقع وارونه)
2013/11/04

برا همینم مشکل دارم
اگه ممکنه کدی بذارید که این تاریخ رو از هم کم کنه
ممنون

ghamgin
یک شنبه 25 فروردین 1392, 10:05 صبح
سلام کسی نمیدونه؟؟؟؟
خواهشا یکی کمک کنه

veniz2008
یک شنبه 25 فروردین 1392, 10:23 صبح
سلام.
این تاریخ ها بصورت date هستن یا رشته؟
این داده ها رو از sql و از جدولتون میارید یا از داخل سی شارپ تولید میشن؟

damanpak
یک شنبه 25 فروردین 1392, 12:16 عصر
سلام به همه
توی سی شارپ یه راهش اینه

DateTime d1 = Convert.ToDateTime("08/10/2013");
DateTime d2 = Convert.ToDateTime("04/11/2013");
TimeSpan ts = d1 - d2;
int x = Convert.ToInt16(ts.TotalDays);
MessageBox.Show(x.ToString());

خلاصه سازیش با خودتون
توی وی بی هم میشه این

MsgBox(DateDiff(DateInterval.Day, #4/11/2013#, #8/10/2013#))

ghamgin
یک شنبه 25 فروردین 1392, 16:56 عصر
سلام.
این تاریخ ها بصورت date هستن یا رشته؟
این داده ها رو از sql و از جدولتون میارید یا از داخل سی شارپ تولید میشن؟

سلام
رشته هستن از نوع nvarchar در برنامه تولید و دربانک ذخیره و از بانک لود میشن
ممنون میشم راهنمایی کنید

veniz2008
یک شنبه 25 فروردین 1392, 17:30 عصر
سلام
رشته هستن از نوع nvarchar در برنامه تولید و دربانک ذخیره و از بانک لود میشن
ممنون میشم راهنمایی کنید
با توجه به فرمتی که تاریخ رو ذخیره میکنید (مثلا 04/21/2013 ) براحتی میتونید با کد زیر تفاوت بین دو تاریخ رو محاسبه کنید :

select *, DATEDIFF(DD,Date1,Date2) as Diff2Dates from TblUser
کد بالا تفاوت دو تاریخ رو بر حسب روز نشون میده. شما میتونی بر حسب سال (YYYY به جای DD) یا بر حسب ماه (MM به جای DD ) استفاده کنید.
موفق باشید.

ghamgin
دوشنبه 26 فروردین 1392, 10:07 صبح
با توجه به فرمتی که تاریخ رو ذخیره میکنید (مثلا 04/21/2013 ) براحتی میتونید با کد زیر تفاوت بین دو تاریخ رو محاسبه کنید :

select *, DATEDIFF(DD,Date1,Date2) as Diff2Dates from TblUser
کد بالا تفاوت دو تاریخ رو بر حسب روز نشون میده. شما میتونی بر حسب سال (YYYY به جای DD) یا بر حسب ماه (MM به جای DD ) استفاده کنید.
موفق باشید.

سلام
ممنون
اما هر کاری میکنم برا این فرمت 04/21/2013 جواب نمیده میشه خواهش کنم نمونه بذارید
ممنون

veniz2008
دوشنبه 26 فروردین 1392, 11:03 صبح
مطمئنید که همه تاریخ ها 10 کاراکتری هستند؟ (4 تا برای سال، 2 تا برای روز و 2 تا هم برای ماه و 2 تا هم برای اسلش ها).
عکس های زیر رو ببینید :

102864

102865

ghamgin
دوشنبه 26 فروردین 1392, 16:44 عصر
سلام
توی بانک این جوری ذخیره شون می کنم
04/14/2013 05:34:42 PM

بعد از بانک به یک لیبل میخونمش و اسپیلیتش می کنم و بخش تاریخ رو در یک متغیر میریزم
اما تفریقش جواب نمیده!!...

ممنون

veniz2008
دوشنبه 26 فروردین 1392, 20:52 عصر
تاریخ رو بدرستی ذخیره کردید و مشکلی نداره.
سمت همون sql با کوئری که براتون گذاشتم عمل تفریق رو انجام بدید و جواب نهایی رو برگردونید به سی شارپ. هیچ محاسبه ای نیاز نیست در سمت سی شارپ انجام بدید.