C# 如何将秒转换为(年:月:日:小时:分钟:秒)时间?
将秒转换为(年:月:日:小时:分钟:秒)时间的最佳方式是什么C# 如何将秒转换为(年:月:日:小时:分钟:秒)时间?,c#,.net,time,C#,.net,Time,将秒转换为(年:月:日:小时:分钟:秒)时间的最佳方式是什么 DateTime date, date2; date = date2 = DateTime.Now; date2= date2.AddSeconds(959040000); var totaldays = (date2 - date).TotalDays; var totalHours = (date2 - date).TotalHours;
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;
假设我有959040000秒(1年5个月),在.NET中是否有任何专门的类/技术允许我将959040000秒转换为(年:月:日:小时:分钟:秒)像DateTime之类的东西?使用TimeSpan类:
var ts = new TimeSpan(0, 0, 959040000);
int days = ts.Days;
int years = days / 365;
....
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;
说实话,你不能,因为这取决于开始日期,即30天可能是1个月1天,或1个月2天,或少于一个月,或365天将少于一年,如果是闰年
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;
但是,您可以使用:
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);
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;
输出为:
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;
30,5,0,0,0,0,0
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;
如果输入856044326
,输出将为:
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;
27,1,22,22,5,26
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;
这是另一个窍门。。您还可以使用时间跨度
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;
是否要将它们添加到特定日期?或者创建时间跨度?我要转换年:月:日小时:分钟:秒。例如:1年:5个月:0天00:00:00格式如果您以Zdravko的答案为例,您必须自己将该字符串连接在一起。没有任何东西会自动为您设置格式。问题是一个月有多长?如果我在2月以2592000的值运行你的程序,我会得到“1个月,2天”吗?如果我在12月再次运行你的程序,我会得到“0个月,30天”吗?你最好使用
TimeSpan.FromSeconds
factory方法。TimeSpan
TimeSpan中没有Years
属性不提供月和年对不起。。。你是对的,没有月和年,但仍然是计算时间的正确方法spans@ZdravkoDanev你可以编辑你的答案,我会投我的反对票。我想:TimeSpan diff=TimeSpan.FromSeconds(9590450425)@用户3408674是的,它是相同的。我已经更改了代码,因为使用FromSeconds
更合适。