.NET DateTime/TimeSpan打勾多长时间?
我有一组包含TimeSpan变量的对象:
MyObject
{
TimeSpan TheDuration { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想用LINQ来总结这些时间.当然,(来自MyCollection中的r选择r.TheDuration).Sum(); 不起作用!
我正在考虑将TheDuration的数据类型更改为int,然后将其求和并将总和转换为TimeSpan.这将是混乱的,因为我的集合中的每个TheDuration都用作其他地方的时间跨度.
有关此总结的任何建议?
我有一堆记录,我需要得到最新的(最近的)和最老的(最近的).
谷歌搜索我发现这个主题,我看到了几个问题:
// option 1
Tweet.findOne({}, [], { $orderby : { 'created_at' : -1 } }, function(err, post) {
console.log( post );
});
// option 2
Tweet.find({}, [], {sort:[['arrival',-1]]}, function(err, post) {
console.log( post );
});
Run Code Online (Sandbox Code Playgroud)
不幸的是他们都错了:
TypeError: Invalid select() argument. Must be a string or object.
Run Code Online (Sandbox Code Playgroud)
链接也有这个:
Tweet.find().sort('_id','descending').limit(15).find(function(err, post) {
console.log( post );
});
Run Code Online (Sandbox Code Playgroud)
那一个错误:
TypeError: Invalid sort() argument. Must be a string or object.
Run Code Online (Sandbox Code Playgroud)
那么我该如何获得这些记录呢?
更理想的是,我只想要最旧和最新记录之间的时间差异(秒?),但我不知道如何开始这样的查询.
这是架构:
var Tweet = new Schema({
body: String …Run Code Online (Sandbox Code Playgroud) 我有时间跨度:
String time1 = 01:00:00
String time2 = 05:00:00
我想检查time1和time2是否介于两者之间20:11:13 and 14:49:00.
实际上,01:00:00大于20:11:13和小于14:49:00考虑20:11:13总是小于14:49:00.这是先决条件.
所以我想要的是,20:11:13 < 01:00:00 < 14:49:00.
所以我需要这样的东西:
public void getTimeSpans()
{
boolean firstTime = false, secondTime = false;
if(time1 > "20:11:13" && time1 < "14:49:00")
{
firstTime = true;
}
if(time2 > "20:11:13" && time2 < "14:49:00")
{
secondTime = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这个代码没有给出正确的结果,因为我正在比较字符串对象.
怎么做,因为他们是时间跨度而不是比较的字符串?
这有点奇怪.如果我想要精确的话,解析具有有效时间跨度的文本字段会失败!
const string tmp = "17:23:24";
//works
var t1 = TimeSpan.Parse(tmp);
//fails
var t2 = TimeSpan.ParseExact(tmp, "hh:mm:ss", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
第二个解析失败,异常"输入字符串格式不正确".来自DateTime.
我想在TextBox中只显示小时和分钟
var test = dataRow.Field<TimeSpan>("fstart").ToString();
//test ="08:00:00"
var tb = (TextBox) gridViewRow.Cells[2].FindControl("fstart");
tb.Text = test;
Run Code Online (Sandbox Code Playgroud)
如何只显示小时和分钟 "hh.mm"
Java是否具有表示一段时间的数据类型,例如34秒,5分钟等.
我已经看过一些TimeSpan的实现,涵盖了从12月10日到12月11日的时间段.
我需要的是像C#中的TimeSpan.
假设我将一些秒转换为TimeSpan对象,如下所示:
Dim sec = 1254234568
Dim t As TimeSpan = TimeSpan.FromSeconds(sec)
Run Code Online (Sandbox Code Playgroud)
如何将TimeSpan对象格式化为如下格式:
>105hr 56mn 47sec
Run Code Online (Sandbox Code Playgroud)
是否有内置函数或我是否需要编写自定义函数?
TimeSpan.FromSeconds 需要一个双倍,并且可以表示低至100纳秒的值,但是这种方法莫名其妙地将时间四舍五入到整个毫秒.
鉴于我只花了半个小时来确定这个(记录在案的!)行为,知道为什么会出现这种情况会更容易忍受浪费的时间.
任何人都可以建议为什么这种看似适得其反的行为被实施了?
TimeSpan.FromSeconds(0.12345678).TotalSeconds
// 0.123
TimeSpan.FromTicks((long)(TimeSpan.TicksPerSecond * 0.12345678)).TotalSeconds
// 0.1234567
Run Code Online (Sandbox Code Playgroud) 我有两个日历,每个都从calendar.SelectedDate返回一个DateTime.
如何相互减去两个选定的日期,给我两次选择之间的天数?
有一个calendar.Subtract()但它需要TimeSpan而不是DateTime.