判断某日是本月的第几周 该怎么办呢?

MikeFuns 2004-12-28 04:40:26
判断某日是本月的第几周 该怎么办呢?
这让我困惑了好几天,help me!!
...全文
289 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
MikeFuns 2004-12-31
  • 打赏
  • 举报
回复
都是高手,向你们学习
祝我们在新的一年中都有较大的进步!
谢谢!
现结帖.
of123 2004-12-30
  • 打赏
  • 举报
回复
啊,看来木头人真的是实心的。
of123 2004-12-30
  • 打赏
  • 举报
回复
MsgBox "今天是本月第 " & _
DateDiff("ww", DateSerial(Year(Date), Month(Date), 1), Date, vbMonday) & _
" 个星期的星期" & Mid("一二三四五六日", Weekday(Date, vbMonday), 1) & "。"
viena 2004-12-30
  • 打赏
  • 举报
回复
//你又写这么大一段代码决解个小问题呀。呵呵。

大吗?我觉得很小啦,
只是可以稍微享受一下打字的快感,
代码长了一点,但是效率未必低哦,不知道DatePart("ww", Now)内部是怎么实现的,里面可能比我这个还复杂,我还是喜欢自己来实现~~
netfor2000 2004-12-30
  • 打赏
  • 举报
回复
viena(维也纳nn-实心木头人石欠RUKYO) 看看我这个代码。也只用了WEEKDAY函数,没用你说的那个DatePart


按你的意思。WEEKDAY最好也不要用了。自己写代码
netfor2000 2004-12-30
  • 打赏
  • 举报
回复
'某一天为当月第几周星期几
T = Day(Rq2) + Weekday(Format(Rq1, "yyyy-mm-01")) - 2
Text1 = "第" + CStr(T \ 7) + "周星期" + CStr(T Mod 7)
bingge 2004-12-29
  • 打赏
  • 举报
回复
搞错了,我上面计算的好象是今天是这一年的第一周!
bingge 2004-12-29
  • 打赏
  • 举报
回复
呵呵,我也刚不久写过,就用了:DatePart("ww", Now),万一不行的话,你在MSDN上查Datepart或者Datediff就知道怎么做了.
netfor2000 2004-12-29
  • 打赏
  • 举报
回复
viena(维也纳nn-实心木头人石欠RUKYO) 你好。

你又写这么大一段代码决解个小问题呀。呵呵。

也是二句话就可得出某天是本月第几周的星期几了行了。
therock1 2004-12-28
  • 打赏
  • 举报
回复
我觉得这样才妥当:
MsgBox "今天是本月的第" & DatePart("ww", Now) - DatePart("ww", Format(Now, "yyyy-mm-01")) & "周"
viena 2004-12-28
  • 打赏
  • 举报
回复
aiur2000(开始.NET)的改成 DatePart("ww", Now) - DatePart("ww", Format(Now, "yyyy-mm-01")) + 1
就对了,缺省是从星期日开始

另:偶的程序中date1是一个date型变量
dongge2000 2004-12-28
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
MsgBox IsWeekday(Text1.Text)
End Sub

Private Sub Form_Load()
Text1.Text = Date
End Sub

Private Function IsWeekday(ByVal InDate As Date) As Integer
IsWeekday = DateDiff("ww", Format(CStr(InDate), "yyyy-mm-01"), InDate)
MsgBox "星期:" & Weekday(InDate) - 1
End Function
viena 2004-12-28
  • 打赏
  • 举报
回复
//另aiur2000(开始.NET)的经测试,不正确
也不是不正确,只是标准不同,
因为他把周一作为一周的开始了,应该是周日是一周的开始
viena 2004-12-28
  • 打赏
  • 举报
回复
Dim zhoushu As Integer '本月的第几周
Dim DayOfMonth As Integer
Dim DayOfWeek As Integer

zhoushu = 1 '初始化为1

DayOfMonth = Day(date1)
DayOfWeek = 7 - Weekday(DateSerial(Year(date1), Month(date1), 1)) + 1
Dim tmp As Integer
tmp = DayOfMonth
If tmp > DayOfWeek Then
zhoushu = zhoushu + 1
tmp = tmp - DayOfWeek
End If
Do While tmp > 7
zhoushu = zhoushu + 1
tmp = tmp - 7
Loop
以上经测试通过,
另aiur2000(开始.NET)的经测试,不正确
douhapy 2004-12-28
  • 打赏
  • 举报
回复
使用Weekday 函数
aiur2000 2004-12-28
  • 打赏
  • 举报
回复
MsgBox DatePart("ww", Now, vbMonday) - DatePart("ww", Format(Now, "yyyy-mm-01"), vbMonday) + 1
maskdata 2004-12-28
  • 打赏
  • 举报
回复
先给你个思路,明天来给你解
先找到哪一年的1月1号是周1的,然后计算年365或是366,然后每过一年+365,过4年加366,然后除以7
得到此年的1月1号是周几,然后计算月,然后计算天,可能很笨
我记得有一个计算星期和年月日关系的公式,不过想不起来了,听说是上古时期留下来的公式

@_@# 回家考虑了

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧