设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2167|回复: 11
打印 上一主题 下一主题

[Access本身] 如何能确定能确定出一个日期是本月内第几周的周几呢

[复制链接]
跳转到指定楼层
1#
发表于 2006-6-13 19:02:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在输入一个日期后,如何能确定能确定出该日期是本月内第几周的周几呢,(例如2006年6月2日,怎么判断为6月第一周的周五呢) 谢谢大家给点意见
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-6-13 19:37:00 | 只看该作者
Dim MyDate
MyDate = #6/13/2006#
MsgBox MyDate & "   是第 " & DatePart("w", MyDate) & " 周  " & WeekdayName(Weekday(MyDate), True)




具体参考:

http://www.office-cn.net/forum.php?mod=viewthread&tid=33813&replyID=&skin=1
3#
 楼主| 发表于 2006-6-13 20:33:00 | 只看该作者
谢谢andymark

4#
发表于 2006-6-13 21:27:00 | 只看该作者
周日到周六算一周,还是周一到周日算一周呢?[em01]
5#
发表于 2006-6-13 22:30:00 | 只看该作者
2楼取得的是本周内的第几天吧.

6#
发表于 2006-6-13 22:42:00 | 只看该作者
以下是引用Benjamin_luk在2006-6-13 14:30:00的发言:


2楼取得的是本周内的第几天吧.



     返回的是星期几   ,具体可以参考weekdayname函数。
7#
 楼主| 发表于 2006-6-14 00:17:00 | 只看该作者


<COLGROUP>

<COL style="WIDTH: 643pt; mso-width-source: userset; mso-width-alt: 27424" width=857>





还是有点疑问,用andymark大侠的这段语句,为什么2006-06-14日显示是第“4”周呢,而不是这个月的第“3”周呢,而2006-06-13日却显示为第“3”周,相差了一天,却相差了一周,小弟愚钝,望大侠指点一二 :p

8#
发表于 2006-6-14 03:01:00 | 只看该作者
如果你认为下图中的日期为 第二周 的话,试试这些代码:



Option Compare Database

Dim c As Integer
Dim d As Date


Sub get_weekcount_weekday()

Dim a As Integer
Dim b As Date

On Error GoTo inputbox_Err
d = InputBox("形如2000-01-01", "输入日期")
a = Month(d)
    Select Case a
        Case 1
        b = #1/1/2006#
        c = Abs(d - b)
        Debug.Print c '距离某月第一天的天数
        Case 2
        b = #2/1/2006#
        c = Abs(d - b)
        Case 3
        b = #3/1/2006#
        c = Abs(d - b)
        Case 4
        b = #4/1/2006#
        c = Abs(d - b)
        Case 5
        b = #5/1/2006#
        c = Abs(d - b)
        Case 6
        b = #6/1/2006#
        c = Abs(d - b)
        Case 7
        b = #7/1/2006#
        c = Abs(d - b)
        Case 8
        b = #8/1/2006#
        c = Abs(d - b)
        Case 9
        b = #9/1/2006#
        c = Abs(d - b)
        Case 10
        b = #10/1/2006#
        c = Abs(d - b)
        Case 11
        b = #11/1/2006#
        c = Abs(d - b)
        Case 12
        b = #12/1/2006#
        c = Abs(d - b)
   End Select
        
Call weekcount
               
  
inputbox_Exit:
        Exit Sub
   
inputbox_Err:
        'MsgBox Error$
        MsgBox "1、您输入的日期格式错误" & vbCr & "" & vbCr & "2、或者取消了日期输入", vbInformation, "日期输入提示..."
        Resume inputbox_Exit

Exit Sub

End Sub


Sub weekcount()

Select Case c
        Case 0, 1, 2, 3, 4, 5
        MsgBox "第一周"
        MsgBox "星期" & Weekday(d, vbMonday) '把每周一作为每周的第一天
        Case 6, 7, 8, 9, 10, 11
        MsgBox "第二周"
        MsgBox "星期" & Weekday(d, vbMonday)
        Case 12, 13, 14, 15, 16, 17
        MsgBox "第三周"
        MsgBox "星期" & Weekday(d, vbMonday)
        Case Is > 18
        MsgBox "第四周"
        MsgBox "星期" & Weekday(d, vbMonday)

End Select

end sub



调用:call get_weekcount_weekday()

上述代码计算 2006-06-14 为第三周,注意只能计算2006年度。写得更通用一点,我无力完成。

[此贴子已经被作者于2006-6-13 19:49:54编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
发表于 2006-6-14 03:57:00 | 只看该作者
才发现,楼主的逻辑是 2006-06-14 为第三周,我的代码太繁琐,

get_weekcount_weekday() 这个过程完全可以省略,直接根据 输入的日期day返回值就可以判断了。也就可以写得更通用一些了。

[此贴子已经被作者于2006-6-13 20:00:10编辑过]

10#
发表于 2006-6-14 04:10:00 | 只看该作者
以下是引用Benjamin_luk在2006-6-13 13:27:00的发言:
周日到周六算一周,还是周一到周日算一周呢?[em01]

这个问题东西方有差异,西方周日是第一天,我们普遍认为的是周一是第一天。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-22 21:27 , Processed in 0.106079 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表