标签: timespan

TimeSpan.Compare比较

我是否正确地假设这个逻辑(在评论中解释)是不正确的?

// While the current time is before the finish time, sleep the current thread.  
// The timer will continue to run the getting of the rates
while (TimeSpan.Compare(DateTime.Now.TimeOfDay,this._finishTime.TimeOfDay) == -1)
Run Code Online (Sandbox Code Playgroud)

在我看到TimeSpan.Compare的MSDN文档之后,在我找到正确的参数为1或0以实现此功能时,我觉得这个代码已存在多年.

.net c# timespan

1
推荐指数
1
解决办法
3310
查看次数

TImeSpan算法与普通算术相比有多长时间?

我有一个带有中断的C#程序,它可以处理我希望每隔40毫秒运行一次的列表部分,但是中断内部的数学运算可以冻结具有特定大小和属性的列表的程序.

我很想尝试通过删除TimeSpan来加速它并从数学中减去并在执行算术之前将它们全部转换为TotalMilliseconds而不是之后.有没有人知道添加和减去TimeSpans的开销是什么,与创建TotalMilliseconds并添加和减去它相比?

谢谢.

c# performance timespan

1
推荐指数
1
解决办法
338
查看次数

c#确实1.09:00:00的时间跨度意味着明天上午9点?

我有一个例程,假设每天上午9点运行....

protected override void OnStart(string[] args)
{
   log.Info("Info - Service Start");
   string timeToRunStr = "09:00";
   var timeStrArray = timeToRunStr.Split(';');
   foreach (var strTime in timeStrArray)
   {
        timeToRun.Add(TimeSpan.Parse(strTime));
   }
    ResetTimer();
}

void ResetTimer()
{
   log.Info("Info - Reset Timer");
   try
   {
       TimeSpan currentTime = DateTime.Now.TimeOfDay;
       TimeSpan nextRunTime = timeToRun[0];
       foreach (TimeSpan runTime in timeToRun)
       {
           if (currentTime < runTime)
           {
               nextRunTime = runTime;
               // log.Info("Info - in loop");
               _timer = new Timer((nextRunTime - currentTime).TotalSeconds * 1000);
               break;
           }
           else {
             TimeSpan test = …
Run Code Online (Sandbox Code Playgroud)

c# datetime timespan timer

1
推荐指数
1
解决办法
1010
查看次数

在C#中将不规则字符串转换为TimeSpan

我有以下格式的几个字符串:

"1:15"
":45"
"1:30:45"

我需要将它们转换为TimeSpan,但是当我使用TimeSpan.Parse中的一些(例如第一个)时,它返回1小时15分钟,我希望它为1分15秒.

任何建议将不胜感激!

c# string parsing timespan

1
推荐指数
1
解决办法
1543
查看次数

将字符串转换为TimeSpan

我需要将其转换为时间跨度:

  • 8
  • 8.3
  • 8.15

当我这样做时:

DateTime s = booking.TourStartDate.Add(TimeSpan.Parse(booking.TourStartTime.Replace(".", ":")));
Run Code Online (Sandbox Code Playgroud)

它会在几天之内加上说'10'(上午10点),而不是时间,虽然它是一种愚蠢的格式.

c# parsing timespan

1
推荐指数
1
解决办法
3万
查看次数

EF,如何保存/检索TimeSpan作为其他数据类型?

SQLCe不支持TimeSpan,所以我需要以其他方式保存它.是否可以在某处定义默认转换,如DbContext,或者我是否需要在存储库中手动处理?我不喜欢因此而改变我的实体类.

顺便说一下,我只保存了24小时的TimeSpan.

如果有一些巧妙的技巧,例子会很棒.

.net c# entity-framework timespan sql-server-ce

1
推荐指数
1
解决办法
2394
查看次数

.NET DateTime差异 - 已过去一年

我正在尝试使用以下代码确定是否已过去一年:

bool HasYearPassed
{
    get
    {
        var inception = InceptionDate.Value; // DateTime Value from UI
        var expiration = ExpirationDate.Value; // DateTime Value from UI
        TimeSpan difference = expiration - inception;
        return difference.Days > 365;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在某些情况下,我得到的答案不正确.具体来说,如果启动日期是2014年1月1日,到期日期是2015年1月1日,则difference.Days返回365,但测试失败,尽管确实已经过了一年.有什么改进逻辑的建议吗?

谢谢!

.net datetime timespan

1
推荐指数
1
解决办法
67
查看次数

PostgreSQL找到两个时间戳之间的中点

我正在将一些东西从SQL Server转换为PostgreSQL.在BeginTime和EndTime之间有一个计算字段的表,称为MidTime.时间是从视频剪辑的开头偏移,并且永远不会超过大约6分钟.在SQL Server中,BeginTime,EndTime和MidTime都是TimeSpans.你可以使用它作为功能:

DATEADD(ms, DATEDIFF(ms,BeginTime, EndTime)/2, BeginTime)
Run Code Online (Sandbox Code Playgroud)

这取两个时间跨度的差异,以毫秒为单位,除以2,然后将其添加到BeginTime.超级直截了当.结果如下所示:

ID  BeginTime   EndTime MidTime
10137   00:00:05.0000000    00:00:07.0000000    00:00:06.0000000
10138   00:00:08.5000000    00:00:09.6660000    00:00:09.0830000
10139   00:00:12.1660000    00:00:13.4000000    00:00:12.7830000
10140   00:00:14.6000000    00:00:15.7660000    00:00:15.1830000
10141   00:00:17.1330000    00:00:18.3000000    00:00:17.7160000
10142   00:00:19.3330000    00:00:21.5000000    00:00:20.4160000
10143   00:00:23.4000000    00:00:25.4000000    00:00:24.4000000
10144   00:00:25.4330000    00:00:26.8330000    00:00:26.1330000
Run Code Online (Sandbox Code Playgroud)

我看过PostgreSQL中可用的所有不同的东西,看不到这样的东西.我将BeginTime和EndTime存储为"没有时区的时间"时间(6)值,并且它们在数据库中看起来正确.我可以相互减去这些,但我不能得到以毫秒为单位的值减半(不允许分割次数),然后没有明显的方法将毫秒添加回BeginTime.

我看过EXTRACT,当你要求毫秒时,你会得到第二和毫秒的值,但只是那部分时间.我似乎无法表示我可以减去,除法,然后将结果添加回另一个时间的时间.

我正在使用Postgres 9.4而且我没有看到任何简单的方法这样做而不会将日期分成组件并获得整体毫秒(看起来它会起作用但我不想做这么难看的事情,如果我不做不需要),或者将所有内容转换为unix日期时间然后进行计算,然后如何将其恢复到"没有时区的时间"并不明显.

我希望有一些我只是缺少的优雅东西?或者更好的方法来存储这些工作更容易?我只对时间部分感兴趣所以时间(6)似乎最接近Sql Server的TimeSpan.

sql-server postgresql time timespan

1
推荐指数
1
解决办法
692
查看次数

如何计算C#中某些时间跨度的平均值

我已经搜索过这个问题,但遗憾的是找不到合适的答案.

我想计算在不同的10天做某事的平均时间,我有10个datetimepicker开始时间,10个datetimepicker用于每天的结束时间(总共20个datetimepicker).

现在我想得到这10天工作所花费的平均时间.

这就是我timespan每天计算所做的,现在我不知道如何计算平均值timespans

当然我想知道有没有更短的方法来完成工作?

DateTime Dt1 = dateTimePicker1.Value;
DateTime Dt2 = dateTimePicker2.Value;
.
.
.
DateTime Dt20 = dateTimePicker20.Value;

TimeSpan Day1 = DateTime.Parse(Dt11.TimeOfDay.ToString()).Subtract(DateTime.Parse(Dt1.TimeOfDay.ToString()));
TimeSpan Day2 = DateTime.Parse(Dt12.TimeOfDay.ToString()).Subtract(DateTime.Parse(Dt2.TimeOfDay.ToString()));
.
.
.

TimeSpan Day10 = DateTime.Parse(Dt20.TimeOfDay.ToString()).Subtract(DateTime.Parse(Dt10.TimeOfDay.ToString()));
Run Code Online (Sandbox Code Playgroud)

我想找到第1天到第10天的平均值

c# timespan datetimepicker

1
推荐指数
2
解决办法
1390
查看次数

C#date在全局变量.NET中滚动13个月的值

在C#中如何datetime在.NET中获得以下值.我试图看看今天的日期并试图滚动13个月.因此,上个月减去 13个月,即2017年12月,但需要在00:00:00000获得该月的第一天.还试图得到一个enddate如下所述,这是上个月底.

试图得到这个并将其分配给我的代码中的变量.

开始日期:

2017-12-01 00:00:00.000 
Run Code Online (Sandbox Code Playgroud)

结束日期:

2019-01-31 23:59:59.000
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法来获得这个?

c# datetime timespan

1
推荐指数
1
解决办法
140
查看次数