VB DateDiff 用法

VB DateDiff 用法,第1张

我复制过来的,不过解释清了。最后,实际例子在下面:

DateDiff (I , D1 , D2[,FW[,FY]])

计算两个日期之间的期间

I :设定两个日期之间的期间计算之单位。譬如 >I="m" 表示计算的单位为月。 >I 的设定值如:

yyyy > Year 年

q Quarter 季

m Month 月

d Day 日

w Weekday 星期

h Hour 时

n Minute 分       ·[这里应该用n代表,很多书说m其实是错的]·

s Second 秒

D1 ,D2:计算期间的两个日期表达式,若 >date1 较早,则两个日期之间的期间结果为正值;若 >date2 较早, 则结果为负值。

FW :设定每周第一天为星期几, 若未设定表示为星期天。 >FW 的设定值如下:

0 使用 >API 的设定值。

1 星期天

2 星期一

3 星期二

4 星期三

5 星期四

6 星期五

7 星期六

FY :设定一年的第一周, 若未设定则表示一月一日那一周为一年的第一周。 >FY 的设定值如下:

0 使用 >API 的设定值。

1 一月一日那一周为一年的第一周

2 至少包括四天的第一周为一年的第一周

3 包括七天的第一周为一年的第一周

新建工程-添加一个timer控件

放入代码

Dim d1, d2

Private Sub Form_Load()

d1 = Now

Timer1Interval = 1000

End Sub

Private Sub Timer1_Timer()

d2 = Now

DebugPrint DateDiff("s", d1, d2, vbMonday, vbFirstJan1)

End Sub

这个是计算两个日期相差秒数的。

datestr=now() '取当前系统日期

sday=year(datestr)&"-"&month(datestr)&"-1" '当前月第一天

eday=DateAdd("m", 1, sday) '增加一个月时间

eday=DateAdd("d", -1, eday) '减去一天就是月末日期

eday=day(eday) '得到当月天数

输入如下代码试试就知道了

Sub test()

MsgBox VBANow()

MsgBox VBATime

MsgBox VBADate

MsgBox Format(Now(), "aaaa")

MsgBox Format(Date, "aaaa")

End Sub

VB内置的Weekday函数就可以返回星期

Weekday(date[, firstdayofweek])

-- date: 必要; Date类型; 要求的日期

-- firstdayofweek: 可选; vbDayOfWeek类型; 定义每周第一天(默认为星期天)

Weekday返回一个Integer, 代表每周第几天

============================================

WeekdayName(weekday[, abbreviate][, firstdayofweek])

-- weekday: 必要; Long类型; 每周第几天

-- abbreviate: 可选; Boolean类型; 表示星期的名称是否被缩写(默认为False)

-- firstdayofweek: 可选; vbDayOfWeek类型; 定义每周第一天(默认为星期天)

WeekdayName返回一个String, 如"星期一", 但根据不同的系统, 也会返回如"Monday"

============================================

你也可以不用WeekdayName自己得到星期名

Choose(Weekday(#8/8/2008#, vbMonday), "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日")

ActiveCellFormulaR1C1 = Date & "在" & Year(Date) & "年的第" & DateDiff("ww", Year(Date) & "/01/01", Date) + 1 & "周"

方法/步骤

1

1、按“ALT+F11”两个按键,d出VBA模式

右击Thisworkbook-插入-模块

2

拷贝下面代码到空白处,然后关闭VBA

Function week2Day(y As Integer, i As Integer, k As Integer) As String

Dim datetemp As Date, j As Integer

If i > 52 Then

MsgBox ("一年最多只有52个周!")

weekFristDay = "1900-1-1"

Exit Function

End If

datetemp = y & "-" & 1 & "-" & 1

j = VBAWeekday(datetemp, vbMonday)

j = (8 - j) + (i - 2) 7

datetemp = DateAdd("d", j + k - 1, datetemp)

week2Day = CStr(datetemp)

End Function

3

在空单元格中输入下面函数

=week2day(2014,1,5) ‘其中第一个参数是年,第二个参数是第几周,第三个参数该周第几天,该函数返回为2014-1-3日

VB获取星期用WeekDay函数,怎么用看MSDN吧,那比我权威,下面是部分内容:

返回一个 Integer 值,该值包含表示周中某一天的数。

Public Function Weekday( _

ByVal DateValue As DateTime, _

Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeekSunday _

) As Integer

参数

DateValue

必选项。所要确定为该周某一天的 Date 值。

DayOfWeek

可选项。选自 FirstDayOfWeek 枚举的值,该枚举用于指定周的第一天。若未指定,则使用 FirstDayOfWeekSunday。

设置

DayOfWeek 参数可以有以下设置之一。

枚举值 值 说明

FirstDayOfWeekSystem 0 系统设置中指定的周的第一天

FirstDayOfWeekSunday 1 星期日(默认)

FirstDayOfWeekMonday 2 星期一(依照 ISO 8601 标准第 317 节)

FirstDayOfWeekTuesday 3 星期二

FirstDayOfWeekWednesday 4 星期三

FirstDayOfWeekThursday 5 星期四

FirstDayOfWeekFriday 6 星期五

FirstDayOfWeekSaturday 7 星期六

异常/错误

异常类型 错误号 条件

ArgumentException 5 DayOfWeek 小于 0 或大于 7。

备注

Weekday 函数所返回的值与 FirstDayOfWeek 枚举的值相对应;即 1 表示星期天,7 表示星期六。

若 DayOfWeek 小于 0 或大于 7,则发生 ArgumentException 错误。

注意 Weekday 使用取自 SystemGlobalization 命名空间中 CultureInfo 类 CurrentCulture 属性的当前日历设置。默认 CurrentCulture 值由“控制面板”设置决定。

示例

本示例使用 Weekday 函数从指定日期中获取星期几部分。

Dim MyDate As Date

Dim MyWeekDay As Integer

MyDate = #2/12/1969# ' Assign a date

MyWeekDay = Weekday(MyDate) ' MyWeekDay contains 4 because

' MyDate represents a Wednesday

以上就是关于VB DateDiff 用法全部的内容,包括:VB DateDiff 用法、VB怎样获取指定年月的天数、在excel的VBA里如何获取日期和星期几等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9438631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存