【Access小品】周而复始--获取每月各周日期范围示例
时 间:2015-04-27 12:21:41
作 者:煮江品茶 ID:10802 城市:武汉
摘 要:【Access小品】周而复始 -- 获取每月各周日期范围示例
正 文:
最近有版友问到统计每月中各周的数据问题,这个问题的解决要点是如何获得每月中各周的日期范围。而获得各周的日期范围的难点,又在于第一周和最后一周可能不是完整的七天。时间的流逝是周而复始的,但由于以月度和周两个时间度量来计算,就可能造成某一种时间度量(周)在另一种度量(月)的约束下不一定周而复始。注意这里说的不能周而复始的前提是因为另一种度量的约束,也就是说没有这种约束,依然是周而复始的。
前面我们讨论周在月中不完全能周而复始的原因并不重要,就本问题而言最重要的是观察到第一周和最后一周可能不是完整的七天。有了这个对问题的观察,我们也就有了解决问题的思考方向,由此入手也就不难解决问题。在本示例中主要采用一个自定义的函数来处理问题,这个自定义函数大体可以按如下代码编写:
Public Function WeekDateArr(ByVal y As Integer, ByVal m As Integer) As Variant
'功能:返回当前月度中各周的日期范围
'参数:y -- 年度, m -- 月度
Dim monthday0 As Date, monthday1 As Date
Dim weekday0 As Date, weekday1 As Date
Dim Arr() As String
Dim i As Integer
monthday0 = DateSerial(y, m, 1)
monthday1 = DateSerial(y, m + 1, 0)
'第一周日期范围
weekday0 = monthday0
weekday1 = DateAdd("d", 7 - Weekday(weekday0, vbMonday), weekday0)
ReDim Preserve Arr(1, 0)
Arr(0, 0) = weekday0
Arr(1, 0) = weekday1
i = 0
Do While weekday1 < monthday1
weekday0 = DateAdd("d", 1, weekday1)
weekday1 = DateAdd("d", 6, weekday0)
If weekday1 > monthday1 Then weekday1 = monthday1
i = i + 1
ReDim Preserve Arr(1, i)
Arr(0, i) = weekday0
Arr(1, i) = weekday1
Loop
WeekDateArr = Arr
End Function
示 例:
视 图:
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)

学习心得
最新文章
- Access快速开发平台--Acc...(06.16)
- 【Access高效办公】按日期区间...(06.12)
- Access快速开发平台--生成复...(06.07)
- 仓库管理实战课程(25)-导航菜单...(06.06)
- 仓库管理实战课程(24)-库存月结...(06.05)
- 分享一个简单的X氏家谱小示例(06.04)
- 仓库管理实战课程(23)-先入先出(06.02)
- 仓库管理实战课程(22)-代理商库...(05.30)
- 仓库管理实战课程(21)-安全库存...(05.28)
- Access快速开发平台--如何添...(05.26)