将秒转换为(年:月:日时:分:秒)时间的最佳方法是什么?
假设我有959040000秒(1年5个月),.NET中是否有任何专门的类/技术可以将这些959040000秒转换为(年:月:日时:分钟:秒) DateTime还是什么?
答案 0 :(得分:5)
使用TimeSpan类:
var ts = new TimeSpan(0, 0, 959040000);
int days = ts.Days;
int years = days / 365;
....
答案 1 :(得分:2)
说实话,你不能因为它取决于开始日期,即30天可能是1个月1天,或1个月2天,或不到一个月或365天将小于a如果它是闰年的那一年。
但是,您可以使用:
TimeSpan diff = TimeSpan.FromSeconds(959040000);
string formatted = string.Format(
CultureInfo.CurrentCulture,
"{0} years, {1} months, {2} days, {3} hours, {4} minutes, {5} seconds",
diff.Days / 365,
(diff.Days - (diff.Days / 365) * 365)/30,
(diff.Days - (diff.Days / 365) * 365) - ((diff.Days - (diff.Days / 365) * 365) / 30)*30,
diff.Hours,
diff.Minutes,
diff.Seconds);
Console.WriteLine(formatted);
输出是:
30,5,0,0,0,0
如果输入856044326
,输出将为:
27,1,22,22,5,26
答案 2 :(得分:-1)
这是另一个技巧..你也可以使用时间跨度
DateTime date, date2;
date = date2 = DateTime.Now;
date2= date2.AddSeconds(959040000);
var totaldays = (date2 - date).TotalDays;
var totalHours = (date2 - date).TotalHours;
var Totalmin = (date2 - date).TotalMinutes;
var years = totaldays / 365;