打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
量化投资
userphoto

2022.09.23 安徽

关注

第十四章:日期和时间

第一节:计时方式

   EL中有两种记录日期和时间的方式,一种是EL标准的日期和时间格式,一种是儒略日计时方式。关于儒略日的计时方式,可能非常的陌生,主要在天文学家使用,想非常详细理解的可以参照这个网址:http://www.kepuchina.cn/wiki/ct/201802/t20180216_552422.shtml

  EL中一般把日期和时间的两种表示方式分开表述,另外还可以合二为一的表述,下面是参照EL的标准文档的解释,分别对照儒略日的表示方式:

  日期格式有:

  ELDate 日期格式:日期格式为 YYYMMdd,其中 YYY 为从 1900 起至 今的年份,MM 为月份,dd 日,总共是 7 位数的数值(2000 年之前, 为 6 位数的数值)。

  儒略日(Julian day)日期格式:儒略日表示法是以基准日期开始, 每过一天,数值加 1 的表示法,因此,它是一个递增的等差数列,没 有月份,也没有年份的概念。在 MultiCharts 中,儒略日的起始点是 1900/1/1,当天的儒略日是 2。因此 1900/1/2 的儒略日为 3,依次类 推。

  时间格式有

  ELTime 标准时间格式:是常见的 HHmm 格式的数值,HH 是小时数, 采用 24 小时制,MM 是分钟数。例如,下午 1:00=1300。为了处理更 加精确的时间计算,也有包含秒数的 ELTime 格式,表示成 HHmmss, ss 是秒数,同样是数值类型。例如,下午 1:00:59=130059。包含秒数 的关键字都含有_s 字尾。

  儒略日时间格式:儒略日中可以包含小数,小数值用来显示时间,代 表从凌晨 0:00 开始经过的时间。这个时间会以秒数表示,而一天有 86400 秒,所以儒略日的小数值意义为:0.1 儒略日=0.1*86400=8640 秒。例如:凌晨 1 点若要以儒略日表示的话为:1 小时*60 分*60 秒 /86400 秒=0.04167 儒略日,得出凌晨一点等于 0.04167 儒略日。 以下关键字参数说明中的“儒略日”即“DateTime”。

第二节:常用函数

2.1 ComputerDateTime(儒略日)

# 语法

语法 ComputerDateTime

# 示例

若电脑日期时间为 2008 年 1 月 1 日上午 6:00,
对应的 ComputerDateTime 返回值为 39448.25000000

# 说明

  返回当前电脑日期时间的儒略日值。 整数部分是儒略日日期,小数部分为儒略日时间。

2.2 CurrentDate(EL标准)

# 语法

语法 CurrentDate

# 示例

如果电脑日期为 2008 年 10 月 30 日,则 CurrentDate 返回值为 1081030

# 说明

  返回当前电脑的日期值,返回日期为 YYYMMdd 格式。

2.3 CurrentTime(EL标准)

# 语法

语法 CurrentTime

# 示例

电脑时间为 10:45AM 时,CurrentTime 返回值为 1045电脑时间为 3:45PM 时,CurrentTime 返回值为 1545

# 说明

  返回一个数值,表示电脑当前时间。时间格式为 HHmm, 24 小时制,1300=1:00PM。

2.4 CurrentTime_s(EL标准)

# 语法

语法 CurrentTime_s

# 示例

电脑时间 10:45:25AM 时,CurrentTime_s 返回值为 104525电脑时间为 3:45:00PM 时,CurrentTime_s 返回值为 154500

# 说明

  返回一个数值,表示电脑当前时间(包含秒)。时间格式为 HHmmss,24 小时制,130000=1:00:00PM。

2.5 DateTime2ELTime(儒略日)

# 语法

语法 DateTime2ELTime(儒略日)
参数 儒略日——数值表达式,表示儒略日格式时间。

# 示例

DateTime2ELTime(39449.65625000) 返回值为 1545,表示3:45PM

# 说明

  将指定儒略日格式的时间转换为对应的 ELTime 的 HHmm 格 式时间。

2.6 DateTime2ELTime_s(儒略日)

# 语法

语法 DateTime2ELTime_s(儒略日)
参数 儒略日——数值表达式,表示儒略日格式时间。

# 示例

DateTime2ELTime_s(39449.646354167) 返回值为 153045,表示 3:30:45 PM

# 说明

  将指定儒略日格式的时间转换为对应的 ELTime 的 HHmmss格式时间。

2.7 DateTimeToString(儒略日)

# 语法

语法 DateTimeToString(儒略日)
参数 儒略日——数值表达式,表示儒略日格式日期时间。
注意 范例中返回值默认为 US 时区的日期时间格式,日期时间格
式可以通过 WIN 系统的控制面板中设置。

# 示例

DateTimeToString(39448.25000000) 返回字符串 '1/1/20086:00:00 AM'

# 说明

  将指定的儒略日日期时间转换为字符串格式返回。

2.8 DateToJulian(EL标准)

# 语法

语法 DateToJulian(YYYMMdd)
参数 YYYMMdd——数值表达式,表示 YYYMMdd 格式的日期。

# 示例

DateToJulian(1080101) 表示指定日期为 2008 年 1 月 1 日,
返回值 39448DateToJulian (990402) 表示指定日期为 1999 年 4 月 2 日,
返回值 36252

# 说明

  将指定的日期转换为儒略日格式返回。 指定日期格式为 YYYMMdd,YYY 表示自 1900 至今的年份, MM 表示月,dd 表示日。

2.9 DateToString(儒略日)

# 语法

语法 DateToString(儒略日)
参数 儒略日——数值表达式,表示儒略日格式日期。
注意 范例中的返回值默认为 US 时区的日期时间格式,日期时间
格式可以通过 WIN 系统的控制面板中设置。

# 示例

DateToString(39448.25000000) 返回字符串 '1/1/2008'

# 说明

  将儒略日格式的日期(整数部分)转换成字符串格式返回。

2.10 DayFromDateTime(儒略日)

# 语法

语法 DayFromDateTime(儒略日)
参数 儒略日——数值表达式,表示儒略日格式日期。
注意 范例中返回值默认为 US 时区的日期时间格式,日期时间格
式可以通过 WIN 系统的控制面板中设置。

# 示例

DayFromDateTime(39449.25000000) 返回值为 2,表示 2008年 1 月的第二天。

# 说明

  返回指定的儒略日所对应的日期(当月第几天)。

2.11 DayOfMonth(EL标准)

# 语法

语法 DayOfMonth(YYYMMdd)
参数 YYYMMdd——数值表达式,表示 YYYMMdd 格式的日期。

# 示例

DayOfMonth(1080101) 返回值为 1,表示 2008 年 1 月的第一天。
DayOfMonth(990605) 返回值为 5,表示 1999 年 6 月的第五天。

# 说明

  返回指定的 ELDate 格式日期所对应的日期(当月的第几 天)。 指定日期格式为 YYYMMdd,Y YYY 表示自 1900 至今的年份, MM 表示月,dd 表示日。

2.12 DayOfWeek(EL标准)

# 语法

语法 DayOfWeek(YYYMMdd)
参数 YYYMMdd——数值表达式,表示 YYYMMdd 格式的日期。

# 示例

DayOfWeek(1080101) 返回值为 2,表示 2008 年 1 月 1 日是星期二。
DayOfWeek(990603) 返回值为 4,表示 1999 年 6 月 3 日是星期四。

# 说明

  根据指定 ELDate 格式日期取得当天为该周第几天的数值。 如 0=星期天,1=星期一,依次类推。 指定日期格式为 YYYMMdd,YYY 表示自 1900 至今的年份, MM 表示月,dd 表示日。

2.13 DayOfWeekFromDateTime(儒略日)

# 语法

语法 DayOfWeekFromDateTime(儒略日)
参数 儒略日——数值表达式,表示儒略日格式日期。

# 示例

DayOfWeekFromDateTime(39448.25000000) 返回值为 2,表示 2008 年 1 月 1 日是星期二。

# 说明

  依儒略日的日期取得当天为该周第几天的数值。如 0=星期 天,1=星期一,以此类推。

2.14 El_DateStr(EL标准)

# 语法

语法 El_DateStr(dd, MM,YYYY)
参数
dd——数值表达式,指定天。
MM——数值表达式,指定月。
YYYY——数值表达式,指定年。

# 示例

El_DateStr(02,04,2008) 会返回字符串 '20080402',相当于2008 年 4 月 2 日。

# 说明

  返回值为 8 位字符的字符串,表示指定日期。字符串格式为 YYYYMMdd,YYYY 表示四位的年,MM 表示月,dd 表示日, 如 20130104。这个函数会经常使用

2.15 El_DateToDateTime/ElDateToDateTime(EL标准)

# 语法

语法
EL_DateToDateTime(YYYMMdd)
或
ELDateToDateTime(YYYMMdd)
参数 YYYMMdd——数值表达式,表示 EL 日期,YYYMMdd 格式的日期。

# 示例

ELDateToDateTime(1080101) 返回值为 39448.00000000ELDateToDateTime(990402) 返回值为 36252.00000000

# 说明

  将指定的 ELDate 格式日期转换为儒略日。 指定日期格式为 YYYMMdd,YYY 表示自 1900 至今的年份, MM 表示月,dd 表示日。

2.16 EL_TimeToDateTime/ELTimeToDateTime(EL标准)

# 语法

语法 ELTimeToDateTime(HHmm)
参数 HHmm——数值表达式,表示时间。

# 示例

ELTimeToDateTime(1015) 返回值为 0.42708333,对应时间为 10:15 AM
ELTimeToDateTime(1545) 返回值为 0.65625000, 对应时间为 3:45 PM

# 说明

  将指定的 ELTime 格式的时间转换为儒略日时间。 指定时间格式为 HHmm,24 小时制,1300=1:00PM。

2.17 EL_TimeToDateTime_s/ELTimeToDateTime_s(EL标准)

# 语法

语法
EL_TimeToDateTime_s(HHmmss)
或
ELTimeToDateTime_s(HHmmss)
参数 HHmmss——数值表达式,表示时间(包含秒)。

# 示例

ELTimeToDateTime_s(101525) 返回值为 0.427372685, 对应时间为 10:15:25 AM
ELTimeToDateTime_s(154500) 返回值为 0.656250000, 对应时间为 3:45:00 PM

# 说明

  返回指定时间(包含秒)所对应的儒略日的时间。 指定时间格式为 HHmmss,24 小时制,130000=1:00:00PM。

 2.18 EncodeDate(EL标准)

# 语法

语法 EncodeDate(YY,MM,dd)
参数
YY——数值表达式,表示两位数的年。
MM——数值表达式,表示月份。
dd——数值表达式,表示天数。

# 示例

EncodeDate(08,01,01) 返回值为 39448.00000000,对应指定日期为 2008 年 1 月 1 日。

# 说明

  返回指定日期对应的儒略历日期。

2.19 EncodeTime(EL标准)

# 语法

说明 返回指定时间对应的儒略历时间。
语法 EncodeTime(HH,mm,ss,mmm)
参数
HH——数值表达式,指定 24 小时制时间。
mm——数值表达式,指定分钟。
ss——数值表达式,指定秒。
mmm——数值表达式,指定微秒。

# 示例

EncodeTime(16,29,55,500) 返回值为 0.6874479167,相当于指定时间 16:29:55.500

# 说明

  返回指定时间对应的儒略历时间。

2.20 FormatDate(儒略日)

# 语法

语法 FormatDate('FormatString', DateTime)
参数
FormatString——格式字符,指定输出的日期字符串表达式
的格式。
格式字符元素有:
d——前面不带零的个位天数
dd——前面带零的天数
ddd——三字母缩写表示星期
dddd——星期全名
M——不带零的个位数字月份
MM——带零的数字月份
MMM——三字母缩写表示月份
MMMM——月份全名
y——年份后两位,小于十则前面不带零
yy——年份后两位,小于十则前面带
yyyy——四位数年
DateTime——数值表达式,代表儒略日日期

# 示例

FormatDate('dddd, MMMM dd, yyyy.',39469.250) 返回字符串 'Tuesday, January 22, 2008.'FormatDate('M/d/y',39469.250) 返回字符串'1/22/8'FormatDate('dd-MM-yy',39469.250) 返回字符串'22-01-08'FormatDate('Next ddd is: MMM dd',39469.250) 返回字符串'Next Tue is: Jan 22'

# 说明

  将指定的儒略日日期(整数部分)转换为特定的字符串表达 式,返回特定格式的字符串表达式。 返回的字符串表达式,包含由格式字符规定的缩写和分隔 符。格式字符中包含顺序排列的一个或多个元素,每个元素 代表日期的特定部分。字符串中插入使用空格或分隔符。

2.21 FormatTime(儒略日)

# 语法

语法 FormatTime('FormatString', DateTime)
参数
FormatString ——格式字符,指定输出的时间字符串表达式
的格式。
格式字符元素有:
h——12 小时制 AM/PM 格式时间,个位前不加 0hh——12 小时制 AM/PM 格式时间,个位前加 0H——24 小时制时间,个位时间前不加 0HH——24 小时制时间,个位时间前加 0m——分钟数,个位前不加 0mm——分钟数,个位前加 0s——秒数,个位前不加 0ss——秒数,个位前加 0t——单字母,表示 AM/PM
tt——多字母,表示 AM/PM
DateTime——数值表达式,代表儒略日时间。

# 示例

FormatTime('hh:mm:ss t',39469.6674) 返回字符串'04:01:03 P'FormatTime('h tt',39469.6674) 返回字符串 '4 PM'FormatTime('HH:mm',39469.6674) 返回字符串 '16:01'FormatTime('m MIN s SEC',39469.6674) 返回字符串 '1 MIN3 SEC'

# 说明

  返回值特定格式的字符串表达式,对应儒略历的时间(小数 部分)。 返回的字符串表达式,包含由格式字符规定的缩写和分隔 符。格式字符中包含顺序排列的一个或多个元素,每个元素 代表日期的特定部分。字符串中插入使用空格或分隔符。

2.22 年月日、小时分分钟秒、毫秒(EL标准)

# 语法

1、Date:
    表示为日期:
    2000年之前:表示日期格式为99MMDD,表示1999年MM月DD日
    2000年之后:表示日期格式为100MMDD,表示为2000年MM月DD日2、Year
语法 Year(YYYMMdd)
参数 YYYMMdd——数值表达式,表示 YYYMMdd 格式时间。3、Month
语法 MonthFromDateTime(儒略日)
参数 儒略日——数值表达式,儒略日格式的日期时间。4、Day

# 示例

Month(1080101) 返回值为 1,表示月份为一月。
Month(990605) 返回值为 6,表示月份为六月。
取得指定 EL 日期的月份。EL 日期格式为 YYYMMdd,YYY 表示自 1900 至今的年份,
MM 表示月,dd 表示日。

Year(1080101) 返回值为 108,表示 2008 年
Year(990605) 返回值为 99,表示 1999 年
返回指定日期的年份
EL 日期格式为 YYYMMdd,YYY 表示自 1900 至今的年份,
MM 表示月,dd 表示日。

# 说明

2.23 星期

# 语法

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

返回值:1    2    3    4    5    6    7

# 示例

# 说明

  分别表示星期几的数字表示。

2.24 HoursFromDateTime(儒略日)

# 语法

语法 HoursFromDateTime(儒略日)
参数 儒略日——数值表达式,代表儒略日日期时间。

# 示例

HoursFromDateTime(39449.85000000) 返回值 20,表示 8PM

# 说明

  返回指定儒略日对应的小时数。小时数为 24 小时制,13=1 PM

2.25 IncMonth(儒略日)

# 语法

语法 IncMonth(儒略日,月数)
参数
儒略日——数值表达式,代表儒略日期;
月数——数值表达式,代表要调整的月数。若为正值则往后
增加;若为负值,则往前减少。
注意 若日期为 29~31 的日期,位移后碰到小月,则日期可能会在
次月的月初。

# 示例

IncMonth(39417,1) 取得 2007/12/1 增加一个月的儒略日日期,返回值为 39448,表示 2008/1/1。
IncMonth(36252, -2) 取得 1999/4/2 向前两个月的儒略日日期,返回值为 36193,表示 1999/2/2。

# 说明

  返回一个数值,表示指定儒略日向前或向后指定月数的儒略 日期。

2.26 JulianToDate(儒略日)

# 语法

语法 JulianToDate(儒略日)
参数 儒略日——数值表达式,代表儒略日期

# 示例

JulianToDate(39448) 返回值为 1080101,代表 2008/1/1。
JulianToDate(36252) 返回值为 990402,代表 1999/4/2。

# 说明

  将指定的儒略日转换为 EL 日期返回。 儒略日的整数部分表示从 1990.01.01 至今的天数,小数部 分表示午夜零点开始至现在时间与一天 24 小时的比值。 EL 日期格式为 YYYMMdd,YYY 表示自 1900 至今的年份, MM 表示月,dd 表示日。

2.27 LastCalcJDate(儒略日)

# 语法

LastCalcJDate

# 示例

最后一根 K 线的日期为 2008/1/1 时,LastCalcJDate 返回值为 39448。

# 说明

  返回最后一根 K 线的儒略日日期。 儒略日的整数部分表示从 1990.01.01 至今的天数,小数部 分表示午夜零点开始至现在时间与一天 24 小时的比值。

2.28 LastCalcMMTime

# 语法

语法 LastCalcMMTime

# 示例

最后一根 K 线的时间是 2:10PM,则 LastCalcMMTime 返回值为 850

# 说明

  返回从凌晨开始到最后一根完成 K 线所经过的时间,以分钟 计算。

2.29 LastCalcSSTime

# 语法

语法 LastCalcSSTime

# 示例

最后一根 K 线的时间是 2:10:30 PM,则 LastCalcSSTime 返回值为 51030

# 说明

  返回从凌晨开始到最后一根 K 线所经过的时间,以秒数计 算。

2.30 MilliSecondsFromDateTime

# 语法

# 示例

# 说明

  保留以供将来使用。

2.31 MinutesFromDateTime(儒略日)

# 语法

语法 MinutesFromDateTime(儒略日) 
参数 儒略日——数值表达式,儒略日格式的日期时间。

# 示例

MinutesFromDateTime(39449.35000000) 返回值为 24,表示取得 39449.35000000(8:24AM)的分钟数 24。

# 说明

  依儒略日取得分钟。 儒略日的整数部分表示从 1990.01.01 至今的天数,小数部 分表示午夜零点开始至现在时间与一天 24 小时的比值。

2.32 MonthFromDateTime(儒略日)

# 语法

语法 MonthFromDateTime(儒略日)
参数 儒略日——数值表达式,儒略日格式的日期时间。

# 示例

MonthFromDateTime (39600.25000000) 返回值为 6,表示月份为六月。

# 说明

  取得指定儒略日日期的月份。 儒略日的整数部分表示从 1990.01.01 至今的天数,小数部 分表示午夜零点开始至现在时间与一天 24 小时的比值。

2.33 SecondsFromDateTime(儒略日)

# 语法

语法 SecondsFromDateTime(儒略日)
参数 儒略日——数值表达式,儒略日格式的时间。

# 示例

SecondsFromDateTime(39449.35440000)返回值为 20,表示39449.35440000(8:30:20 AM)秒数为 20

# 说明

  依儒略日取得秒数。儒略日的整数部分表示从 1990.01.01 至今的天数,小数部 分表示午夜零点开始至现在时间与一天 24 小时的比值。

2.34 StringToDate

# 语法

语法
StringToDate('MM/dd/yy')
或:
StringToDate('MM/dd/yyyy')
参数
MM——月份*dd——日期*yy——二位数年份
yyyy——四位数年份
注意*日期时间格式默认是 US 时区的日期时间格式,日期时间格式可以通过 WIN 系统的控制面板中设定地区及语言来设置。

# 示例

StringToDate('01/01/2008')返回值为 39448.00000000,表示2008/1/1 对应的儒略日。
StringToDate (“04/04/99”)返回值为 36254.00000000,表示1999/4/4 对应的儒略日。

# 说明

  将日期字符串转换成儒略日的格式。日期的格式 为”mm/dd/yy”*或”mm/dd/yyyy”*

2.35 StringToDateTime

# 语法

语法 StringToDateTime('MM/dd/yy hh:mm:ss tt') 
或
StringToDateTime('MM/dd/yyyy hh:mm:ss tt')

参数
MM——月份*dd——日期*yy——二位数年
yyyy——四位数年
hh——小时
mm——分钟
ss——秒数
tt——AM/PM

注意*日期时间格式默认是 US 时区的日期时间格式,日期时间格式可以通过 WIN 系统的控制面板中设定地区及语言来设置。

# 示例

StringToDateTime('01/01/2008 08:00:00 AM')返回值为39448.33333333,表示 2008/1/1,08:00:00AM
StringToDateTime('04/04/99 04:48:00 PM')返回值为36254.70000000,表示 1999/4/4,04:48:00PM

# 说明

  将日期时间字符串转换成儒略日的格式。日期时间字符串格 式为'MM/dd/yy hh:mm:ss tt'* 或 'MM/dd/yyyy hh:mm:ss tt'*

2.36 StringToTime

# 语法

语法 StringToTime('hh:mm:ss tt')
参数
hh——小时,采用 12 小时制,搭配 AM/PM 使用。
Mm——分钟
ss——秒数
tt——AM/PM
注意 日期时间格式默认是 US 时区的日期时间格式,日期时间格式可以通过WIN系统的控制面板中设定地区及语言来设置。

# 示例

StringToTime ('08:00:00 AM')返回值为 0.33333333StringToTime ('04:48:00 PM')返回值为 0.70000000

# 说明

  将时间字符串转换为儒略日的格式。时间字符串格式为 'hh:mm:ss tt'。

2.37 Time_s2Time

# 语法

语法 Time_s2Time(HHmmss)
参数 HHmmss——数值表达式,要转换的时间。

# 示例

Time_s2Time(101520)返回值为 1015Time_s2Time(154548)返回值为 1545

# 说明

  将时间格式由 HHmmss 调整成 HHmm,返回值格式为 24 小 时 HHmm 格式,例如 1300 = 1:00PM。指定时间为 24 小时 制 HHmmss 格式,例如 130000 = 1:00:00PM

2.38 Time2Time_s

# 语法

语法 Time2Time_s(HHmm)
参数 HHmm——数值表达式,要转换的时间

# 示例

Time2Time_s(1015) 返回值为 101500Time2Time_s(1545) 返回值为 154500

# 说明

  将时间格式由 HHmm 调整为 HHmmss,返回值格式为 24 小 时 HHmmss 格式。例如 130000 = 1:00:00PM, 指定时间为 24 小时制 HHmm 格式,例如 1300 = 1:00PM

2.39 TimeToString

# 语法

语法 TimeToString(儒略日)
参数 儒略日——数值表达式,儒略日格式的时间。
注意 *日期时间格式默认是 US 时区的日期时间格式,日期时间 格式可以通过 WIN 系统的控制面板中设定地区及语言来设 置。

# 示例

TimeToString(39448.75000000)返回字符串 '6:00 PM'

# 说明

  依儒略日格式的时间转换成字符串。

2.40 YearFromDateTime

# 语法

语法 YearFromDateTime(儒略日)
参数 儒略日——数值表达式,代表儒略日的日期

# 示例

YearFromDateTime(39449.25000000)返回值为 2008,表明年份是 2008

# 说明

  依儒略日取得年份。

第三节:总结

  EL中有很多是根据儒略日的日期年月时间等表示方式。看起来非常麻烦,难道EL的日期和时间部分是一个天文学家写代码嘛?下面采用标准的整数表示方式,在日常写代码中可以考虑使用,这是一种最符合人们日常习惯的表示方式。

3.1 Date日期的习惯表示方式

var:Date_(0);
value1 = YearFromDateTime(datetime);
value2 = MonthFromDateTime(datetime);
value3 = dayfromdatetime(datetime);

Date_ = YearFromDateTime(datetime)*10000 + MonthFromDateTime(datetime)*100 + dayfromdatetime(datetime);

print('========');
print(date);
print(value1);
print(value2);
print(value3);
print(Date_);//return{========1200806.002020.00
   8.00
   6.0020200806.00========1191202.002019.00
  12.00
   2.0020191202.00}

# 说明:从这个例子中我们可以看到,我们把年月日的表示方式习惯的表示成YYYYMMDD的形式,比如1191202表示19年12月2日,可以表示成20191202。这样可以容易理解。因此代码可以精简为:

var:Date_(0);
Date_ = YearFromDateTime(datetime)*10000 + MonthFromDateTime(datetime)*100 + dayfromdatetime(datetime);

  这样只需要调用Date_这个变量就能够更加容易的表示日期了。

3.2 小时分钟秒毫秒的表示方式

  在这里我们分两种,第一种为只有小时分钟,也就是小时线以上的表示方式和小时分钟秒分钟线的表示方式,另外我们还添加毫秒的表示方式,主要用于tick基本。因此变量重新定义为。

  小时+分钟 = Time_

  小时+分钟+秒 = Time_Seconds

  小时+分钟+毫秒 = Time_MilliSeconds

Time_ = HoursFromDateTime(datetime)*100 + MinutesFromDateTime(datetime);//返回值:========1500.001500.00========2200.002200.00========2300.002300.00========1000.001000.00========
Time_seconds = HoursFromDateTime(datetime)*10000 + MinutesFromDateTime(datetime)*100 + SecondsFromDateTime(datetime);
//返回值:

========
44092.96
225900.00
========
44092.96
225915.00
========
44092.96
225930.00
========
44092.96
225945.00

Time_Milliseconds = HoursFromDateTime(datetime)*10000 + MinutesFromDateTime(datetime)*100 + SecondsFromDateTime(datetime) + MillisecondsFromDateTime(datetime)/1000;//返回值:========44092.96225958.50
 500.00========44092.96225958.50
 500.00

# 3.3 因此根据上面的方式,我们可以封装成两个函数

# 函数1 Date_:

//函数名:Date_Date_ = YearFromDateTime(datetime)*10000 + MonthFromDateTime(datetime)*100 + dayfromdatetime(datetime);//调用var:var0(0);
var0 = Date_;

print(var0);//返回值:20200904.0020200904.0020200904.0020200904.0020200904.0020200904.0020200907.0020200907.0020200907.0020200907.0020200907.0020200907.00

# 函数2:Time_:

  当周期为季、年、月,周,时间为HHMMSS = 000000,这里和图表不一致,因为在这三个周期时间是没有用处的。

  当周期为小时周期,分钟周期为0,表示为:1000,1400....,分钟周期加入分钟计时,表示为1000,1459...

  当周期为秒,表示为:104501....

  当周期为tick基本,需要在小数点后面加入tick毫秒,表示为:105959.500

//函数名:Time_if bartype_ex = 10 or bartype_ex = 7 or bartype = 6 or bartype = 5 then 
Time_ = 000000;if bartype_ex = 3 or bartype_ex = 2 then 
Time_ = HoursFromDateTime(datetime)*100 + MinutesFromDateTime(datetime);if bartype_ex = 9 then 
Time_ = HoursFromDateTime(datetime)*10000 + MinutesFromDateTime(datetime)*100 + SecondsFromDateTime(datetime);if bartype_ex = 1 then 
Time_ = HoursFromDateTime(datetime)*10000 + MinutesFromDateTime(datetime)*100 + SecondsFromDateTime(datetime) + MillisecondsFromDateTime(datetime)/1000;//调用:var:var0(0);

print(Time_);//返回值:1、季度、年、月、周02、小时、分钟 940.00
 945.00
 950.00
 955.001000.001005.001010.003、秒225035.00225040.00225045.00225050.00225055.00225100.004、tick225951.50225952.50225953.50225953.50225954.50

 【总结】:这两个函数不是内建函数,建议生成者在实际工作中直接使用这两个函数即可,这样可以统一成数值形式方便调用,更符合人们的日常习惯,这样也可以提高代码的复用率。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【烟花原创】VBA零基础之第178篇VBA函数之日期和时间(四)
《Visual Basic程序设计(第4版)》第3章 VB语言基础
matlab中怎么将日期格式转换成数值、字符串格式 / 折纸人
informix中的to
VFP命令、函数及程序语句大全
mysql函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服