Office中国论坛/Access中国论坛

标题: 求组!如何用当天的日期得到本季度的第一天和最后一天 [打印本页]

作者: asklove    时间: 2010-5-28 16:49
标题: 求组!如何用当天的日期得到本季度的第一天和最后一天
用DatePart("q", Date, 1, 0)函数可以得到当天所处的季度
那么有没有函数将已知的季度,返回这个季度的第一天、最后一天啊

例如今天是2010-05-28,得到2(二季度)
我想要得到的日期是:第一天    2010-04-01
                            最后一天 2010-06-30
作者: zyp    时间: 2010-5-28 17:18
我只会用笨方法,自己写函数,下面这个是求第一天的
Public Function Ds(ToDay As Date) As Date
    Dim Y As Integer
    Y = Year(ToDay)
    Select Case DatePart("q", ToDay)
        Case 1
            Ds = DateSerial(Y, 1, 1)
        Case 2
            Ds = DateSerial(Y, 4, 1)
        Case 3
            Ds = DateSerial(Y, 7, 1)
        Case 4
            Ds = DateSerial(Y, 10, 1)
    End Select
End Function
作者: todaynew    时间: 2010-5-28 17:25
本帖最后由 todaynew 于 2010-5-28 17:28 编辑

第一天:DateSerial(Year(Date), (DatePart("q", Date, 1, 0) - 1) * 3 + 1, 1)
最后一天:DateSerial(Year(Date), DatePart("q", Date, 1, 0) * 3, 1)
作者: todaynew    时间: 2010-5-29 19:11
本帖最后由 todaynew 于 2010-5-29 19:13 编辑
受益非浅,试了一下,最后一天大哟为"最后一天 = DateSerial(Year(Date), DatePart("q", Date, 1, 0) * 3 + 1, 0)"
zmt 发表于 2010-5-29 15:24

你的最后一天写法是对的,我写的最后一天成了季末当月第一天。
不过一般写成:DateSerial(Year(Date), DatePart("q", Date, 1, 0) * 3 + 1, 1-1)
作者: asklove    时间: 2010-6-1 10:03
谢谢各位大哥了!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3