如何使用 VB.Net 2.0 在 ASP.Net 中处理季度(季度日期)?
我知道 Sql Server 有一些方便的内置季度内容,但是什么关于 .Net 本机 DateTime 对象? 加法、减法和遍历四分之一的最佳方法是什么?
使用 VB 特定的 坏事™吗? ="nofollow noreferrer">DateAdd() 函数? 例如:
Dim nextQuarter As DateTime = DateAdd(DateInterval.Quarter, 1, DateTime.Now)
编辑: 扩展 @bslorence 的函数:
Public Shared Function AddQuarters(ByVal originalDate As DateTime, ByVal quarters As Integer) As Datetime
Return originalDate.AddMonths(quarters * 3)
End Function
扩展 @Matt 的函数:
Public Shared Function GetQuarter(ByVal fromDate As DateTime) As Integer
Return ((fromDate.Month - 1) \ 3) + 1
End Function
编辑:这里还有几个方便的函数:
Public Shared Function GetFirstDayOfQuarter(ByVal originalDate As DateTime) As DateTime
Return AddQuarters(New DateTime(originalDate.Year, 1, 1), GetQuarter(originalDate) - 1)
End Function
Public Shared Function GetLastDayOfQuarter(ByVal originalDate As DateTime) As DateTime
Return AddQuarters(New DateTime(originalDate.Year, 1, 1), GetQuarter(originalDate)).AddDays(-1)
End Function
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这个怎么样:
How about this:
需要记住的一件事是,并非所有公司都在每月的最后一天结束季度。
One thing to remeber, not all companies end their quarters on the last day of a month.
扩展马特布莱恩的答案:
不确定这是否会增加速度优势,但在我看来它看起来更干净
Expanding on Matt Blaine's Answer:
Not sure if this would add speed benefits or not but it looks cleaner IMO
我知道您可以通过:
如果您使用Visual Studio 2008,可以尝试通过查看扩展方法。
I know you can calculate the quarter of a date by:
If you're using Visual Studio 2008, you could try bolting additional functionality on to the DateTime class by taking a look at Extension Methods.