日期时间

阅读(5079) 标签: 日期时间,

本章主要展示有关日期时间的代码参考,比如获得当前日期和时间、取出日期时间的各个部分、用部分拼出日期时间、相距某个时段的日期时间、两个日期时间的间隔、星期几、周月季的第一天和最后一天、某月某季某年的天数、产生周期间隔的日期时间序列、某月(季、年)的第二个和最后一个星期五共有几个星期五、判断是否是日期、计算年龄、工作日相关计算等。

获得当前日期和时间

 

A

 

1

=now()

 

2

=now@d()

返回为日期类型

3

=now@m()

精确到分

 

取出日期时间的各个部分

 

A

 

1

=now()

 

2

=year(A1)

 

3

=month(A1)

 

4

=day(A1)

 

5

=time(A1)

 

6

=hour(A1)

 

7

=minute(A1)

 

8

=second(A1)

 

 

用部分拼出日期时间

 

A

B

C

D

E

F

 

1

1989

'02

'01

'02

34

55

 

2

=string(A1)+"-"+string(B1)+"-"+string(C1)+" "+string(D1)+":"+string(E1)+":"+string(F1)

 

 

 

 

 

 

3

=datetime(A2)

 

 

 

 

 

 

4

=datetime(A2,"yyyy-MM-dd HH:mm:ss")

 

 

 

 

 

 

5

=date(A1,int(B1),int(C1))

 

 

 

 

 

 

6

=time(int(D1),E1,F1)

 

 

 

 

 

 

7

=datetime(A1,int(B1),int(C1),int(D1),E1,F1)

 

 

 

 

 

 

8

=datetime(A5,A6)

 

 

 

 

 

 

 

相距某个时段的日期时间

 

A

 

1

2006-07-05

 

2

=elapse(A1,5)

5 天后

3

=elapse("1972-11-08 10:20:30",-10)

10 天前

4

=elapse@s(datetime(A1),5)

5 秒后

5

=elapse@s("1972-11-08 10:20:30",-10)

10 秒前

6

=elapse@m(A1,-1)

1 月前

7

=elapse@y(A1,-1)

1 年前

 

两个日期时间的间隔

 

A

B

 

1

2010-5-01 23:20:15

2010-05-03 01:01:01

 

2

=interval(A1,B1)

 

相差天数

3

=interval@s(A1,B1)

 

相差秒数

4

=interval@y(A1,"2001-01-01")

 

相差年数

5

=interval@m(A1,"2001-01-01")

 

相差月数

6

=interval@ms(A1,now())

 

相差毫秒数

7

=interval(A1,B1)

 

相差天数

8

=interval@s(A1,B1)

 

相差秒数

 

星期几

 

A

 

1

2005-01-08

 

2

=day@w(A1)

星期内的第几天,周日为1

 

周、月、季的第一天和最后一天

 

A

 

1

2006-03-06

 

2

=pdate@w(A1)

周第一天

3

=pdate@we(A1)

周最后一天

4

=pdate@q(A1)

季第一天

5

=pdate@qe(A1)

季最后一天

6

=pdate@m(A1)

月第一天

7

=pdate@me(A1)

月最后一天

 

某月、某季、某年的天数

 

A

 

1

2007-08-08

 

2

=days(A1)

A1所在月天数

3

=days@y(2006)

2006年的天数

4

=days@y(A1)

A1所在年天数

5

=days@q(A1)

A1所在季天数

 

产生周期间隔的日期时间序列

 

A

 

1

2000-08-10 12:00:00

 

2

=periods@y(A1,now(),1)

1年为间隔单位

3

=periods@q(A1,now(),1)

1季为间隔单位

4

=periods@m(A1,now(),2)

2月为间隔单位

 

某月(季、年)的第二个和最后一个星期五,共有几个星期五

 

A

 

1

=now()

 

2

=pdate@m(A1)

月初

3

=pdate@me(A1)

月末

4

=periods(A2, A3,1)

月中日的序列

5

=A4.select(day@w(~)==6)

其中的星期五列

6

 

另一方法

7

=elapse(A2,(d=day@w(A2),if(d==7,6,6-d)))

第一个星期五

8

=periods@x(A7,A3,7)

获得星期五序列,不包括A3的日期

9

=A8(2)

第二个星期五

10

=A8.m(-1)

最后一个星期五

11

=A8.len()

星期五的数量

判断是否是日期

 

A

 

1

=ifdate("2020-04-24")

false

2

=ifdate(date("2020-04-24"))

true

 

计算年龄

 

A

 

1

1995-3-31

 

2

=now@d()

2020-03-30

3

=age(A1)

24,精度是天

4

=age@m(A1)

25,精度是月

5

=age@y(A1)

25,精度是年

 

工作日相关计算

 

A

 

1

2020-4-24

 

2

2020-5-10

 

3

[2020-4-26,2020-5-1,2020-5-4,2020-5-5,2020-5-9]

法定节日调整的日期序列

4

=workday(A1,1)

2020-04-27A1相差1个非周末

5

=workday(A1,1,A3)

2020-04-26A1相差一个工作日

6

=workdays(A1,A2)

A1A2之间的非周末序列

7

=workdays(A1,A2,A3)

A1A2之间的工作日序列