如何使用VB.Net 2.0在ASP.Net中处理季度(季度日期)?

时间:2020-03-06 14:26:20  来源:igfitidea点击:

我知道Sql Server具有一些方便的内置季度信息,但是.Net本机DateTime对象呢?加,减和遍历四分之一的最佳方法是什么?

这是一件坏事吗?使用特定于VB的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

解决方案

这个怎么样:

Dim nextQuarter As DateTime = DateTime.Now.AddMonths(3);

我知道我们可以通过以下方式计算日期的四分之一:

Dim quarter As Integer = (someDate.Month - 1) \ 3 + 1

如果我们使用的是Visual Studio 2008,则可以通过查看扩展方法,尝试将其他功能添加到DateTime类上。

要记住的一件事是,并非所有公司都在一个月的最后一天结束季度。