查看: 1253|回复: 0

VisualBasic实现某一天的下/上一个星期几是那一天

[复制链接]
发表于 2011-7-19 07:53:31 | 显示全部楼层 |阅读模式
参数:您相信吗?这个模组的写法比用任何其他的方法快几十倍!参数如下:
1:以那一天为基准日?
2:(Optional)要找的是星期几?若不指定,预设值为星期六
3:(Optional)要往前(过去)找或往后(未来)找?
若不指定,预设值为往后(未来)找


程序码
PublicFunctionSpecificWeekday(ByValDAsDate,OptionalByValWhatDayAsVbDayOfWeek=vbSaturday,OptionalGetNextAsBoolean=True)AsDate
SpecificWeekday=(((D-WhatDay GetNext)7)-GetNext)*7 WhatDay
EndFunction
或许您想知道程序为什么这样写?

您知道吗?在VB中,其所有日期函数的基准日(第0天)是1899年12月30日(星期六),第一天就是1899年12月31日(星期日),所以VB的WeekDay函数算法其实就是(Date-1)Mod7 1。

返回值
日期

实例:
我想知道以下日子各是那一天?
上个星期一:SpecificWeekday(Now,vbMonday,False)
下个星期六:SpecificWeekday(Now)
2000年9月9日的下一个星期五:SpecificWeekday("09/09/2000",vbFriday)->



本贴源自: http://bbs.byz5.com/read.php?fid=50&tid=5290&toread=1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条


关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖QQ客服返回顶部