40,000,000秒是462.962天.如果我想将其表示为ISO-8601期间,请使用以下格式:
PnYnMnDTnHnMnS
Run Code Online (Sandbox Code Playgroud)
确定月份和年份的规则是什么?两者都不是精确的术语,标准表示它取决于期间的开始日期.
这是有道理的:它使得周期模糊而没有开始日期.是否有任何可接受的使用没有开始日期的期限的方法?
好的,我们来点订单:
该标准支持两种类型是:
日期为一个特定的时间点,因为0000年,直到9999年
或者
持续时间可以描述两个日期或时间仲裁者/时间跨度是不是两个具体日期之间的时间跨度.幸运的是,当你指定持续时间时,标准比日期更灵活:)
那么我们如何区分日期和仲裁时间之间的持续时间呢?
简单:如果你指定了一年的"P1Y" - 这正是你得到的.
如果你想计算这1年的天数 - 这将取决于你应用这一年的开始日期.
例如,如果说开始日期是2010年1月1日(因此二月有28天是正常的),那么计算中的1年值将产生365天.但是,如果说开始日期是2012年1月1日(因此2月因闰年而有29天),那么你的1年价值将产生366天......
但在这两种情况下,你想要1年 - 而你有1年.因此,第一件事是不要在你的情况下使用多年,因为你真正想要的是在几秒钟内指定相当于40000000 - 只是很快...所以我们的下一个选择是在几天内指定它而.962作为一个一天的一部分:
40000000秒是462天,23小时,6分40秒,根据我在ISO-8601中读到的内容,可以将其指定为持续时间:"P462DT23H6M40S"或者您可以简单地指定"PT40000000S"甚至"P462". 962D" - 所有进展持续时间.
为了减轻计算的痛苦,你可以使用这个非常简单的C#Line:
var timespan = new TimeSpan(0, 0, 40000000);
只需在它之后放一个断点,然后查看Timespan类为你计算的内部结构.
在那之后,将它们放入ISO-8601格式是相当容易的.
哦,最后一件事 - 是的,你也可以指定分数 - 例如"P0.5Y"来指定半年.
| 归档时间: |
|
| 查看次数: |
412 次 |
| 最近记录: |