首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VB.NET DateTime OutOfRangeException

VB.NET DateTime OutOfRangeException
EN

Stack Overflow用户
提问于 2014-01-13 19:21:18
回答 2查看 70关注 0票数 1

我创建了一个函数,我为其提供四分之一(1、2、3或4)和一年(例如2014年)。该函数然后计算本季度的第一天和最后一天。

它有时工作得很好,但是当我喂四分之一"4“时,我得到了这一行中的一个超出范围的例外:

代码语言:javascript
复制
Dim dtLastDay As New DateTime(uYear, 3 * uQuarter + 1, 1)

我不知道为什么会发生这种情况。有人能帮忙吗?

非常感谢!

代码语言:javascript
复制
Public Sub QuarterYearToDates(ByVal uQuarter As Integer, ByVal uYear As Integer, ByRef uStart As Date, ByRef uEnd As Date)

        Dim iMonth As Integer
        If uQuarter = 1 Then
            iMonth = 1
        ElseIf uQuarter = 2 Then
            iMonth = 4
        ElseIf uQuarter = 3 Then
            iMonth = 7
        ElseIf uQuarter = 4 Then
            iMonth = 10
        End If

        Dim dtFirstDay As New DateTime(uYear, 3 * uQuarter - 2, 1)
        Dim dtLastDay As New DateTime(uYear, 3 * uQuarter + 1, 1)
        dtLastDay = dtLastDay.AddDays(-1)

        uStart = dtFirstDay
        uEnd = dtlastday

    End Sub
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-13 19:24:48

当您传递该值时,它将计算为13,并且没有第13个月。

您可以使用以下方法来处理此问题:

代码语言:javascript
复制
uEnd = dtFirstDay.AddMonths(3).AddDays(-1)

DateTime.AddMonths方法将为您正确地处理这个问题。

票数 3
EN

Stack Overflow用户

发布于 2014-01-13 19:23:22

(3 * uQuarter + 1)的操作顺序是

(3*4)+1

或者是13.没有第13个月。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21099577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档