标签: timespan

如何将TimeSpan序列化为XML

我试图将.NET TimeSpan对象序列化为XML,但它无法正常工作.一个快速谷歌建议,虽然TimeSpan是可序列化的,但XmlCustomFormatter它不提供将TimeSpan对象转换为XML或从XML 转换对象的方法.

一种建议的方法是忽略TimeSpan序列化,而是序列化结果TimeSpan.Ticks(并new TimeSpan(ticks)用于反序列化).一个例子如下:

[Serializable]
public class MyClass
{
    // Local Variable
    private TimeSpan m_TimeSinceLastEvent;

    // Public Property - XmlIgnore as it doesn't serialize anyway
    [XmlIgnore]
    public TimeSpan TimeSinceLastEvent
    {
        get { return m_TimeSinceLastEvent; }
        set { m_TimeSinceLastEvent = value; }
    }

    // Pretend property for serialization
    [XmlElement("TimeSinceLastEvent")]
    public long TimeSinceLastEventTicks
    {
        get { return m_TimeSinceLastEvent.Ticks; }
        set { m_TimeSinceLastEvent = new TimeSpan(value); }
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# serialization timespan

200
推荐指数
6
解决办法
5万
查看次数

存储值> 24:00:00的.Net Timespan的正确SQL类型是什么?

我试图TimeSpan在SQL Server 2008 R2中存储.Net .

EF Code First似乎建议它应该存储为Time(7)SQL中的一个.

但是TimeSpan.Net可以处理比24小时更长的时间.

TimeSpan在SQL服务器中处理存储.Net的最佳方法是什么?

.net sql-server timespan

185
推荐指数
7
解决办法
9万
查看次数

以小时显示两个日期时间值之间的差异

我正从数据库中检索两个日期时间值.一旦检索到值,我需要两个值之间的差异.为此,我创建了一个时间跨度变量来存储2个日期值的差异.

TimeSpan? variable = datevalue1 - datevalue2;
Run Code Online (Sandbox Code Playgroud)

现在我需要以小时数的形式显示存储在Timespan变量中的差异.我提到了TimeSpan.TotalHours但由于某种原因无法应用它.我怎么做?我在MVC项目上使用C#.我只需要以小时显示差异值?

编辑:由于时间跨度可以为空,我无法使用总小时数属性.现在我可以通过做TimeSpanVal.Value.TotalHours来使用它 ;

c# datetime timespan asp.net-mvc-2

180
推荐指数
5
解决办法
44万
查看次数

查找当前时间是否落在时间范围内

使用.NET 3.5

我想确定当前时间是否落在时间范围内.

到目前为止,我有目前的情况:

DateTime currentTime = new DateTime();
currentTime.TimeOfDay;
Run Code Online (Sandbox Code Playgroud)

我正在搞清楚如何获得转换和比较的时间范围.这会有用吗?

if (Convert.ToDateTime("11:59") <= currentTime.TimeOfDay 
    && Convert.ToDateTime("13:01") >= currentTime.TimeOfDay)
{
   //match found
}
Run Code Online (Sandbox Code Playgroud)

更新1:感谢大家的建议.我不熟悉TimeSpan功能.

c# datetime timespan

131
推荐指数
6
解决办法
14万
查看次数

计算两个日期之间的月份差异

在C#/.NET TimeSpanTotalDays,TotalMinutes等等,但我无法弄清楚总月差的公式.每月可变天数和闰年一直让我失望.我如何获得TotalMonths

编辑抱歉没有更清楚:我知道我实际上无法得到这个,TimeSpan但我想使用TotalDays,TotalMinutes并将是一个很好的例子来表达我正在寻找...除了我想要得到总月.

示例:2009年12月25日 - 2009年10月6日= 2 TotalMonths.10月6日至11月5日等于0个月.11月6日,1个月.12月6日,2个月

.net c# datetime timespan

121
推荐指数
6
解决办法
13万
查看次数

C#4.0:我可以使用TimeSpan作为带有默认值的可选参数吗?

这两个都会产生错误,说它们必须是编译时常量:

void Foo(TimeSpan span = TimeSpan.FromSeconds(2.0))
void Foo(TimeSpan span = new TimeSpan(2000))
Run Code Online (Sandbox Code Playgroud)

首先,有人可以解释为什么在编译时无法确定这些值吗?有没有办法为可选的TimeSpan对象指定默认值?

c# timespan default-value optional-parameters c#-4.0

118
推荐指数
6
解决办法
4万
查看次数

测量代码执行时间

我想知道程序/功能/订单需要多长时间才能完成测试.

这是我做的,但我的方法是错误的'因为如果秒的差异为0则无法返回经过的毫秒:

请注意,睡眠值为500毫秒,因此经过的秒数为0,则无法返回毫秒数.

    Dim Execution_Start As System.DateTime = System.DateTime.Now
    Threading.Thread.Sleep(500)

    Dim Execution_End As System.DateTime = System.DateTime.Now
    MsgBox(String.Format("H:{0} M:{1} S:{2} MS:{3}", _
    DateDiff(DateInterval.Hour, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Minute, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Second, Execution_Start, Execution_End), _
    DateDiff(DateInterval.Second, Execution_Start, Execution_End) * 60))
Run Code Online (Sandbox Code Playgroud)

有人能告诉我更好的方法吗?也许有一个TimeSpan

解决方案:

Dim Execution_Start As New Stopwatch
Execution_Start.Start()

Threading.Thread.Sleep(500)

MessageBox.Show("H:" & Execution_Start.Elapsed.Hours & vbNewLine & _
       "M:" & Execution_Start.Elapsed.Minutes & vbNewLine & _
       "S:" & Execution_Start.Elapsed.Seconds & vbNewLine & _
       "MS:" & Execution_Start.Elapsed.Milliseconds & vbNewLine, _
       "Code execution time", MessageBoxButtons.OK, …
Run Code Online (Sandbox Code Playgroud)

.net c# vb.net datetime timespan

104
推荐指数
6
解决办法
14万
查看次数

如何将TimeSpan转换为格式化字符串?

我有两个DateTime变量,beginTime和endTime.通过执行以下操作,我得到了它们的不同之处:

TimeSpan dateDifference = endTime.Subtract(beginTime);
Run Code Online (Sandbox Code Playgroud)

我现在如何使用C#以hh,mm mins,ss secs格式返回一串字符串.

如果差异是00:06:32.4458750

它应该返回00小时,06分钟,32秒

c# timespan

102
推荐指数
10
解决办法
25万
查看次数

如何将刻度转换为分钟?

我的蜱价值为28000000000,应该是480分钟,但我怎么能确定?如何将刻度值转换为分钟?

c# datetime timespan

87
推荐指数
5
解决办法
13万
查看次数

在.NET中乘以TimeSpan

如何在C#中乘以TimeSpan对象?假设变量durationTimeSpan,我想,例如

duration*5
Run Code Online (Sandbox Code Playgroud)

但这给了我一个错误"operator*不能应用于类型TimeSpan和int".这是我目前的解决方法

duration+duration+duration+duration+duration
Run Code Online (Sandbox Code Playgroud)

但这并没有扩展到非整数倍,例如. duration * 3.5

.net c# time timespan date

84
推荐指数
6
解决办法
2万
查看次数