PDA

View Full Version : تبدیل date time به timespan



atinetsherkat
یک شنبه 07 شهریور 1389, 15:14 عصر
سلام
چه جوری میشه نوع دیت تایم را به تایم اسپن تبدیل کرد.
خودم یه تابع پیدا کردم ولی نوع بازگشتیش میخوام int باشه
اینم کدش ممنون کمکم کنید

static double ConvertToUnixTimestamp(DateTime date)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
TimeSpan diff = date - origin;
return Math.Floor(diff.TotalSeconds);
}

#aliyari_C
یک شنبه 07 شهریور 1389, 16:59 عصر
سلام


چه جوری میشه نوع دیت تایم را به تایم اسپن تبدیل کرد.


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;



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


private int ConvertToUnixTimestamp(DateTime date)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
diff = date - origin;
return (int)diff.TotalSeconds;
}
راه دوم که فک کنم اصولی تر است


int rdate = (int) ConvertToUnixTimestamp(DateTime.Now);

موفق باشی
__________________________________________________ __________________________________________________
چون به دریا می توانی راه یافت
سوی یک قطره چرا باید شتافـت

atinetsherkat
دوشنبه 08 شهریور 1389, 08:59 صبح
[quote=#aliyari_C;1080971]
سلام




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;




private int ConvertToUnixTimestamp(DateTime date)
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
diff = date - origin;
return (int)diff.TotalSeconds;
}


راه دوم که فک کنم اصولی تر است




int rdate = (int) ConvertToUnixTimestamp(DateTime.Now);



موفق باشی

__________________________________________________ __________________________________________________
چون به دریا می توانی راه یافت
سوی یک قطره چرا باید شتافـت


------------------------------------------------
ممنون از راهنماییتون اما وقتی تبدیل به int میشه چون از نوع long است مقدارش ناقص میشه و زمانی را که بهش دادم را بر نمیگردونه زمان جاری را بر میگردونه