Tag: 时间跨度

在wpf mvvm中绑定时间跨度,并且仅显示分钟:秒?

我希望能够在文本框中设置分钟和秒。 我现在只是将我的文本框绑定到属性,这是一个TimeSpan属性。 所以现在在我的文本框中,默认为:00:00:00。 这很好,但我希望能够有00:00。 这样就可以消除时间。 我该怎么做呢? 我在网上搜索但找不到任何好的解决方案 谢谢! 这是我的约束力: public TimeSpan MaxTime { get { if (this.Examination.MaxTime == 0) return TimeSpan.Zero; else return maxTime; } set { maxTime = value; OnPropertyChanged(“MaxTime”); TimeSpan x; this.Examination.MaxTime = int.Parse(maxTime.TotalSeconds.ToString()); } }

很好地显示时间跨度

请原谅粗略的代码,我试图以秒为单位显示video的持续时间。 我有一个下面但它没有正常工作。 我希望它能很好地显示 – 即应该显示9m:59s而不是09m:59s。 如果小时为零则不显示小时数,如果小时数为零则不显示分钟数。 public static string GetTimeSpan(int secs) { TimeSpan t = TimeSpan.FromSeconds(secs); string answer; if (secs < 60) { answer = string.Format("{0:D2}s", t.Seconds); } else if (secs < 600)//tenmins { answer = string.Format("{0:m}m:{1:D2}s", t.Minutes, t.Seconds); } else if (secs < 3600)//hour { answer = string.Format("{0:mm}m:{1:D2}s", t.Minutes, t.Seconds); } else { answer […]

TimeSpan到友好的字符串库(C#)

有没有人知道用于将TimeSpan对象转换为“友好”字符串的好库(或代码片段),例如: 两年零三个月零四天 一周两天 (这是一个文件到期系统,到期时间可能是几天到几十年) 只是为了澄清,说我有7天的TimeSpan,应该打印“1周”,14天“2周”,366天“1年1天”等。

如何生成“人类可读”字符串来表示TimeSpan

我有一个TimeSpan表示客户端连接到我的服务器的时间。 我想将TimeSpan显示给用户。 但我不想过于冗长地显示这些信息(例如:2小时3分钟32.2345秒=太详细了!) 例如:如果连接时间是…… > 0 seconds and 0 Seconds > 1 minute and 0 Minutes, 0 Seconds > 1 hour and 0 Hours, 0 Minutes > 1 day —–> 0 Days, 0 Hours 当然,在数字为1(例如:1秒,1分钟,1小时,1天)的情况下,我想使文本单数(例如:1秒,1分钟,1小时,1天) 。 无论如何,如果没有一组巨大的if / else子句,是否可以轻松实现这一点? 这是我目前正在做的事情。 public string GetReadableTimeSpan(TimeSpan value) { string duration; if (value.TotalMinutes < 1) duration = value.Seconds + […]

C#中的TimeSpan“漂亮时间”格式

输入这个问题的标题让我想到了这个问题 。 我正在寻找相同的东西,但如果你理解我的意思,可能不那么静态地格式化了什么? 我正在编写一个快速程序,它将使用两个DateTime对象的TimeSpan持续时间并输出它们以便打印到纸上。 首选的格式是: XX days, YY hours, ZZ minutes (秒是无关紧要的;因为我不希望时间跨度超过几个小时)。 说下面的代码(作为例子): DateTime start = DateTime.Now; DateTime end = DateTime.Now.AddMinutes(135); TimeSpan duration = (end – start); // output duration as XX hours, YY minutes 谢谢, 扎克 PS我也跑过“ PrettyTime.NET ”,但它输出的内容就像“3天前”等等。我在google上找到的其他主题用来格式化持续时间字符串,就像上面的例子一样,这使我得到了一个基于Java的解决方案。 :\ 更新2014-09-08: 为了在3年后进行跟进,我在NuGet和Github上找到了一个很棒的库,名为“ Humanizer ”,可以解决我遇到的这个问题。 我没有那么多使用它,但我确实尝试了它并且它的工作非常好。 虽然它是一个相当大的库(它为你的项目的构建路径发出了不同文化的大量文件夹(我确信有一种方法可以自定义它))。

减去两个日期

我有两个日历,每个都从calendar.SelectedDate返回一个DateTime。 如何相互减去两个选定的日期,给我两次选择之间的天数? 有一个calendar.Subtract()但它需要TimeSpan而不是DateTime。

在DataGridView列中格式化TimeSpan

我见过这些 问题,但都涉及CellStyle Format值中没有的方法。 我只想显示小时和分钟部分(16:05); 不是秒(16:05:13)。 我试图强制秒值为零,但仍然像16:05:00。 如果没有使用像提供字符串或DateTime(并且仅显示小时/分钟部分)的kludge,那么我可以通过任何方式获得格式化以完成我想要的操作。

计算年,月,周和日

在我的应用程序中,用户输入两个日期。 计划的开始日期和计划的结束日期。 我们必须采用这些日期,并根据差异填充4个字段。 所以,让我们说他选择2010年1月1日作为开始,2011年3月2日作为结束,我们需要最终得到: 年:1个月:2周:0天1 意思是总持续时间为1年,2个月和1天。 有这样做的标准方法吗? 或者我是否需要编写一个具有许多非常棘手的逻辑的方法来解决它? 我希望我很幸运,并且会有一个date-diff类型.Net类可用。

范围之间的随机日期时间 – 不统一输出

我实现了下面的RandomDate,但我总是让值关闭到“从”日期,我可能会错过这里的东西…. public static DateTime GetRandomDate(DateTime from, DateTime to) { var range = new TimeSpan(to.Ticks – from.Ticks); var rnd = new Random(); var randTimeSpan = new TimeSpan((long)(range.TotalSeconds – rnd.Next(0, (int)range.TotalSeconds))); return from + randTimeSpan; }