已经使用Date.js,但如果需要也可以使用其他库.
不确定使用时间增量的最佳方法是什么.具体来说,我想显示从现在到过去的日期时间之间经过的时间.
所以我需要做这样的事情:
var elapsed_time = new Date() - pastDate;
pastDate.toString('days-hours-minutes-seconds');
Run Code Online (Sandbox Code Playgroud)
得到它主要使用Date.js工作,但问题是现在我正在使用Date对象而不是时间跨度,所以应该是23小时的时间跨度是在Date的第一次之后23小时:
var result = (new Date()) - past_date; "result" is the number (probably milliseconds): 15452732
var result = (new Date() - past_date "result" is a date from 1969: Wed Dec 31 1969 23:17:32
我需要的是:
0 days 23 hours 17 minutes and 32 seconds
有任何想法吗?
是否有一种简单的方法来获取float表示小时数的值并将它们转换为TimeSpan对象,反之亦然?例如:
float oneAndAHalfHours = 1.5f;
float twoHours = 2f;
float threeHoursAndFifteenMinutes = 3.25f;
float oneDayAndTwoHoursAndFortyFiveMinutes = 26.75f;
TimeSpan myTimeSpan = ConvertToTimeSpan(oneAndAHalfHours); // Should return a TimeSpan Object
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有一个有2个日期属性的类:FirstDay和LastDay. LastDay是可以为空的.我想以格式生成一个字符串"x year(s) y day(s)".如果总年数小于1,我想省略年份部分.如果总天数小于1,我想省略日期部分.如果年份或天数为0,则应分别说"天/年",而不是"天/年".
示例:
2.2年:"2年73天"
1.002738年:"1年1
天"0.
2年:" 73天" 2年:"2年"
我有什么作品,但它很长:
private const decimal DaysInAYear = 365.242M;
public string LengthInYearsAndDays
{
get
{
var lastDay = this.LastDay ?? DateTime.Today;
var lengthValue = lastDay - this.FirstDay;
var builder = new StringBuilder();
var totalDays = (decimal)lengthValue.TotalDays;
var totalYears = totalDays / DaysInAYear;
var years = (int)Math.Floor(totalYears);
totalDays -= (years * DaysInAYear);
var days = (int)Math.Floor(totalDays);
Func<int, string> sIfPlural = value =>
value > …Run Code Online (Sandbox Code Playgroud) 你能围绕.NET TimeSpan对象吗?
我的Timespan值为:00:00:00.6193789
是否有一种简单的方法可以将它保持为TimeSpan对象,但将其舍入为
00:00:00.62?
I want to achieve the converse of this, that is, I want to convert a string with format hh:mm tt to a TimeSpan with zeroed seconds.
For example, 09:45 pm is converted to 21:45:00.
我一直在浏览Kinect传感器的一些Microsoft代码示例,并且偶然发现了以下行.
TimeSpan zeroDuration = TimeSpan.FromSeconds(0.0);
TimeSpan timeRemaining = ...;
if (timeRemaining.CompareTo(this.zeroDuration) > 0)
{
}
Run Code Online (Sandbox Code Playgroud)
我理解CompareTo()在排序这样的场景中有什么用处,但是为什么它会用在条件if()而不是更直接的方法中呢?
if (timeRemaining > this.zeroDuration)
{
}
Run Code Online (Sandbox Code Playgroud)
PS:如果是来自任何其他来源,我会带着一粒盐,但考虑到代码的一般质量,假设有一个原因
TimeSpan.Parse("23:00:00")返回23小时.
TimeSpan.Parse("24:00:00")返回24天!
我意识到我犯了一个错误,因为允许的小时范围是0-23.但是如果你试图解析一个超出范围的值,你会得到一个例外.在超出范围值的小时数的情况下,解析器错误地假设您指的是几天而不是几小时.
有人可以解释一下吗?
这个例子在这里涵盖了这个主题,并指出 http://msdn.microsoft.com/en-us/magazine/ee309881.aspx
TryParse似乎也是如此.尽管文档声明解析失败,但我得到了24天.
http://msdn.microsoft.com/en-us/library/3z48198e
// String to Parse TimeSpan
// --------------- ---------------------
// 0 00:00:00
// 14 14.00:00:00
// 1:2:3 01:02:03
// 0:0:0.250 00:00:00.2500000
// 10.20:30:40.50 10.20:30:40.5000000
// 99.23:59:59.9999999 99.23:59:59.9999999
// 0023:0059:0059.0099 23:59:59.0099000
// 23:0:0 23:00:00
// 24:0:0 Parse operation failed.
// 0:59:0 00:59:00
// 0:60:0 Parse operation failed.
// 0:0:59 00:00:59
// 0:0:60 Parse operation failed.
// 10: Parse operation failed.
// 10:0 10:00:00
// :10 Parse operation failed.
// 0:10 00:10:00
// 10:20: Parse …Run Code Online (Sandbox Code Playgroud) 输入这个问题的标题让我想到了这个问题.我正在寻找相同的东西,但如果你理解我的意思,可能不那么静态地格式化了什么?
我正在编写一个快速程序,它将使用两个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
Run Code Online (Sandbox Code Playgroud)
谢谢,
扎克
PS我也跑过" PrettyTime.NET ",但它输出的内容就像"3天前"等等.我在google上找到的其他主题用来格式化持续时间字符串,就像上面的例子一样,这使我得到了一个基于Java的解决方案.:\
更新2014-09-08:
为了在3年后进行跟进,我在NuGet和Github上找到了一个很棒的库,名为" Humanizer ",可以解决我遇到的这个问题.我没有那么多使用它,但我确实尝试了它并且它的工作非常好.它虽然是一个相当大的库(它为你的项目的构建路径发出了不同文化的大量文件夹(我确信有一种方法可以自定义它)).
我需要当前的Datetime减去myDate1秒.
DateTime myDate1 = new DateTime(1970, 1, 9, 0, 0, 00);
DateTime myDate2 = DateTime.Now;
TimeSpan myDateResult = new TimeSpan();
myDateResult = myDate2 - myDate1;
Run Code Online (Sandbox Code Playgroud)
.
.
我尝试了不同的计算方法但没有效果.
TimeSpan mySpan = new TimeSpan(myDate2.Day, myDate2.Hour, myDate2.Minute, myDate2.Second);
Run Code Online (Sandbox Code Playgroud)
.
它的计算方式并不重要,输出应该只是这些值与秒的差值.
我有以下代码:
DateTime pickerDate = Convert.ToDateTime(pickerWakeupDate.SelectedDate);
string enteredStr = pickerDate.ToShortDateString() + " " + textWakeupTime.Text;
string format = "dd/M/yyyy HH:mm";
DateTime enteredDate = DateTime.ParseExact(enteredStr, format, null);
Run Code Online (Sandbox Code Playgroud)
我面临的问题是,我想现在就确定设定日期和日期和时间之间的差异.然后,该值需要为我提供日期之间的分钟数.
我试过用:
DateTime todaysDateTime = DateTime.Now;
TimeSpan span = enteredDate.Subtract(todaysDateTime);
int totalMins = span.Minutes;
Run Code Online (Sandbox Code Playgroud)
但是0当这个值提前10分钟时,这给了我一个不正确的值.
谁能帮我解决这个问题
谢谢.