13
|
Rookie Programmer Aravind · 技术社区 · 14 年前 |
![]() |
1
28
作为替代方案:
|
![]() |
2
22
如果速度是一个问题,以下应该是最快的方法:
这也是一种非常直接和简单的方法。
解释一下,日期时间结构实际上没有存储年、月、日、小时、分钟等的字段。它只存储一个
无论何时使用任何日期/时间属性,它都会除以适当的常量。 在这里,我们加上一个等于30分钟的常数(30*60*1e7=18000000000滴答),然后减去一个等于1小时的常数(60*60*1e7=3600000000滴答)后的余数。 |
![]() |
3
6
怎么办:
不需要转换成字符串再转换回来!
编辑:
|
![]() |
4
4
给你!
对于那些想把它铺在地上的人来说
|
![]() |
5
3
|
![]() |
6
3
扩展汉斯·凯斯汀的好答案:
可能不需要(int)强制转换。 编辑:改编了汉斯·凯斯汀在回答中所做的更正。 |
![]() |
7
3
为了改进其他一些方法,这里有一个方法还将保留日期时间类型:
|
![]() |
8
1
基于P爸爸的解决方案,我建议不要在一小时内硬编码那么多的代码。硬编码是邪恶的,不是吗?使用此修改后的解决方案,您现在可以将任何给定时间舍入为任意分钟数:
我用这个四舍五入到最接近的5分钟,例如22:23变为22:25。 几年前,我用同样的方法把钱四舍五入到最接近的25美分,例如22.23美元变成22.25美元。但项目经理有时会改变主意,但将四舍五入改为最接近的10%或5%是微不足道的。所以现在,当我的项目经理希望把时间四舍五入到另一轮的分钟数时,我也不必紧张。 所以这种舍入方法既快速又灵活。 我的方法已在中找到并发布 this 2008 SO solution |
![]() |
9
1
|