精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓..各种开发技巧..〓〓>>算法、技巧和其他>>某一天的下 (上) 一个星期几是那一天?

主题:某一天的下 (上) 一个星期几是那一天?
发信人: makoto.g(回到原来世界)
整理人: winsy(2003-03-05 16:32:51), 站内信件
参数 : 您相信吗?这个模组的写法比用任何其他的方法快几十倍!参数如下:
1:以那一天为基准日?
2:(Optional) 要找的是星期几?若不指定,预设值为星期六
3:(Optional) 要往前 (过去) 找或往后 (未来) 找?
若不指定,预设值为往后 (未来) 找


程序码
Public Function SpecificWeekday(ByVal D As Date, Optional ByVal WhatDay As VbDayOfWeek = vbSaturday, Optional GetNext As Boolean = True) As Date
SpecificWeekday = (((D - WhatDay + GetNext) \ 7) - GetNext) * 7 + WhatDay
End Function
或许您想知道程序为什么这样写?

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

返回值
日期

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

[转]


----
       /'~~~~~~~\|/
    ,/'     ____ `\
   |   ,,__/    '| \
   |_./___   ___ |  |
    |-(  .)-(.  )`|,'
   (|  ~~~   ~~~   |)
    |     `-'      |'
     \    ____   /
      \   `--'   /
       |\______/|
      |\________/|
      \----------/ 傻傻的Makoto

[关闭][返回]