MultiCharts编程-PowerLanguage-Date and time routines日期和时间
- UID
- 2
- 积分
- 2874674
- 威望
- 1387366 布
- 龙e币
- 1487308 刀
- 在线时间
- 13156 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-11-24
|
MultiCharts编程-PowerLanguage-Date and time routines日期和时间
第8章 Date and time routines日期和时间 Powerlanguage日期格式有: ELDate日期格式:日期格式为YYYMMdd,其中YYY为从1900起至今的年份,MM为月份,dd日,总共是7为数的数值(2000年之前,为6为数的数值)。 儒略日(Julian day)日期格式:儒略日表示法是以基准日期开始,每过一天,数值加1的表示法,因此,它是一个递增的等差数列,没有月份,也没有年份的概念。在MC中,儒略日的起始点是1900/1/1,当天的儒略日是2。因此1900/1/2的儒略日为3,依次类推。 Powerlanguage时间格式有: 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。 ComputerDateTime | 说明 | 返回当前电脑日期时间的儒略日值。 整数部分是儒略日日期,小数部分为儒略日时间。 | 语法 | ComputerDateTime | 范例 | 若电脑日期时间为2008年1月1日上午6:00, 对应的ComputerDateTime
返回值为 39448.25000000 |
CurrentDate | 说明 | 返回当前电脑的日期值,返回日期为YYYMMdd格式。 | 语法 | CurrentDate | 范例 | 如果电脑日期为2008年10月30日,则CurrentDate返回值为1081030 |
CurrentTime | 说明 | 返回一个数值,表示电脑当前时间。时间格式为HHmm,24小时制。例如1300=1:00PM | 语法 | CurrentTime | 范例 | 电脑时间为10:45AM时,CurrentTime返回值为1015 电脑时间为3:45PM时,CurrentTime返回值为 1545 |
CurrentTime_s | 说明 | 返回一个数值,表示电脑当前时间(包含秒)。时间格式为HHmmss,24小时制。130000=1:00:00PM. | 语法 | CurrentTime_s | 范例 | 电脑时间10:45:25AM时,CurrentTime_s返回值为101525 电脑时间为3:45:00PM时,CurrentTime_s返回值为 154500 |
DateTime2ELTime | 说明 | 将指定儒略日格式的时间转换为对应的ELTime的HHmm格式时间。 | 语法 | DateTime2ELTime(儒略日) | 参数 | 儒略日——数值表达式,表示儒略日格式时间。 | 范例 | DateTime2ELTime(39449.65625000) 返回值为1545,表示3:45 PM |
DateTime2ELTime_s | 说明 | 将指定儒略日格式的时间转换为对应的ELTime的HHmmss格式时间。 | 语法 | DateTime2ELTime_s(儒略日) | 参数 | 儒略日——数值表达式,表示儒略日格式时间。 | 范例 | DateTime2ELTime_s(39449.646354167) 返回值为153045,表示3:30:45 PM |
DateTimeToString | 说明 | 将指定的儒略日日期时间转换为字符串格式返回。 | 语法 | DateTimeToString (儒略日) | 参数 | 儒略日——数值表达式,表示儒略日格式日期时间。 | 注意 | 范例中返回值默认为US时区的日期时间格式,日期时间格式可以通过WIN系统的控制面板中设置。 | 范例 | DateTimeToString(39448.25000000) 返回字符串 "1/1/2008 6:00:00 AM" |
DateToJulian | 说明 | 将指定的日期转换为儒略日格式返回。 指定日期格式为YYYMMdd,YYY表示从1900年至今的年份,MM表示月份,dd表示日期。 | 语法 | DateToJulian(YYYMMdd) | 参数 | YYYMMdd——数值表达式,表示YYYMMdd格式的日期。 | 范例 | DateToJulian(1080101) 表示指定日期为2008年1月1日,返回值39448 DateToJulian (990402) 表示指定日期为1999年4月2日,返回值36252 |
DateToString | 说明 | 将儒略日格式的日期(整数部分)转换成字符串格式返回。 | 语法 | DateToString(儒略日) | 参数 | 儒略日——数值表达式,表示儒略日格式日期。 | 注意 | 范例中的返回值默认为US时区的日期时间格式,日期时间格式可以通过WIN系统的控制面板中设置。 | 范例 | DateToString(39448.25000000) 返回字符串 "1/1/2008" |
DayFromDateTime | 说明 | 返回指定的儒略日所对应的日期(当月第几天)。 | 语法 | DayFromDateTime(儒略日) | 参数 | 儒略日——数值表达式,表示儒略日格式日期。 | 注意 | 范例中返回值默认为US时区的日期时间格式,日期时间格式可以通过WIN系统的控制面板中设置。 | 范例 | DayFromDateTime(39449.25000000) 返回值为2,表示2008年1月的第二天。 |
DayOfMonth | 说明 | 返回指定的ELDate格式日期所对应的日期(当月的第几天)。 指定日期格式为YYYMMdd,YYY表示从1900年至今的年份,MM表示月份,dd表示日期。 | 语法 | DayOfMonth(YYYMMdd) | 参数 | YYYMMdd——数值表达式,表示YYYMMdd格式的日期。 | 范例 | DayOfMonth(1080101) 返回值为1,表示2008年1月的第一天。 DayOfMonth(990605) 返回值为5,表示1999年六月的第五天。 |
DayOfWeek | 说明 | 根据指定ELDate格式日期取得当天为该周第几天的数值。如0=星期天,1=星期一,依次类推。 指定日期格式为YYYMMdd,YYY表示从1900年至今的年份,MM表示月份,dd表示日期。 | 语法 | DayOfWeek(YYYMMdd) | 参数 | YYYMMdd——数值表达式,表示YYYMMdd格式的日期。 | 范例 | DayOfWeek(1080101) 返回值为2,表示2008年1月1日是星期二 。 DayOfWeek(990603) 返回值为 4,表示1999年6月3日是星期四。 |
DayOfWeekFromDateTime | 说明 | 依儒略日的日期取得当天为该周第几天的数值。如0=星期天,1=星期一,以此类推。 | 语法 | DayOfWeekFromDateTime(儒略日) | 参数 | 儒略日——数值表达式,表示儒略日格式日期。 | 范例 | DayOfWeekFromDateTime(39448.25000000) 返回值为2,表示2008年1月1日是星期二。 |
El_DateStr | 说明 | 返回值为8位字符的字符串,表示指定日期。字符串格式为 YYYYMMdd ,YYYY表示四位的年,MM表示月,dd表示天。 | 语法 | El_DateStr(dd, MM,YYYY) | 参数 | dd——数值表达式,指定天。 MM——数值表达式,指定月。 YYYY——数值表达式,指定年。 | 范例 | El_DateStr(02,04,2008) 会返回字符串 "20080402",相当于2008年4月2日。 |
El_DateToDateTime/ElDateToDateTime | 说明 | 将指定的ELDate格式日期转换为儒略日。 指定日期格式为YYYMMdd,YYY表示从1900年至今的年份,MM表示月份,dd表示日期。 | 语法 | ELDateToDateTime(YYYMMdd) | 参数 | YYYMMdd——数值表达式,表示EL日期,YYYMMdd格式的日期。 | 范例 | ELDateToDateTime(1080101) 返回值为39448.00000000 ELDateToDateTime(990402) 返回值为36252.00000000 |
EL_TimeToDateTime/ELTimeToDateTime | 说明 | 将指定的ELTime格式的时间转换为儒略日时间。 指定时间格式为HHmm,24小时制。1300=1:00PM | 语法 | ELTimeToDateTime(HHmm) | 参数 | HHmm——数值表达式,表示时间。 | 范例 | ELTimeToDateTime(1015) 返回值为 0.42708333,对应时间为10:15 AM ELTimeToDateTime(1545) 返回值为 0.65625000, 对应时间为 3:45 PM |
EL_TimeToDateTime_s/ELTimeToDateTime_s | 说明 | 返回指定时间(包含秒)所对应的儒略日的时间。 指定时间格式为HHmmss,24小时制。130000=1:00:00PM | 语法 | ELTimeToDateTime_s(HHmmss) | 参数 | HHmmss——数值表达式,表示时间(包含秒)。 | 范例 | ELTimeToDateTime_s(101525) 返回值为0.427372685, 对应时间为10:15:25 AM ELTimeToDateTime_s(154500) 返回值为0.656250000, 对应时间为 3:45:00 PM |
EncodeDate | 说明 | 返回指定日期对应的儒略历日期。 | 语法 | EncodeDate(YY,MM,dd) | 参数 | YY——数值表达式,表示两位数的年。 MM——数值表达式,表示月份。 dd——数值表达式,表示天数。 | 范例 | EncodeDate(08,01,01) 返回值为 39448.00000000,对应指定日期为2008年1月1日。 |
EncodeTime | 说明 | 返回指定时间对应的儒略历时间。 | 语法 | EncodeTime(HH,mm,ss,mmm) | 参数 | HH——数值表达式,指定24小时制时间。 mm——数值表达式,指定分钟。 ss——数值表达式,指定秒。 mmm——数值表达式,指定微秒。 | 范例 | EncodeTime(16,29,55,500) 返回值为 0.6874479167, 相当于指定时间 16:29:55.500 |
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" |
EncodeTime | 说明 | 返回值特定格式的字符串表达式,对应儒略历的时间(小数部分)。 返回的字符串表达式,包含由格式字符规定的缩写和分隔符。格式字符中包含顺序排列的一个或多个元素,每个元素代表日期的特定部分。字符串中插入使用空格或分隔符。 | 语法 | FormatTime("FormatString", DateTime) | 参数 | FormatString ——格式字符,指定输出的时间字符串表达式的格式。
格式字符元素有: h——12小时制AM/PM格式时间,个位前不加0 hh——12小时制AM/PM格式时间,个位前加0 H——24小时制时间,个位时间前不加0 HH——24小时制时间,个位时间前加0 m——分钟数,个位前不加0 mm——分钟数,个位前加0 s——秒数,个位前不加0 ss——秒数,个位前加0 t——单字母,表示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 MIN 3 SEC" |
Friday | 说明 | 返回数值5,表示星期五。 | 语法 | Friday | 范例 | Friday返回值为5 |
HoursFromDateTime | 说明 | 返回指定儒略日对应的小时数。小时数为24小时制,13=1 PM | 语法 | HoursFromDateTime(儒略日) | 参数 | 儒略日——数值表达式,代表儒略日日期时间。 | 范例 | HoursFromDateTime(39449.85000000) 返回值 20, 表示 8 PM |
IncMonth | 说明 | 返回一个数值,表示指定儒略日向前或向后指定月数的儒略日期。 | 语法 | IncMonth(儒略日,月数) | 参数 | 儒略日——数值表达式,代表儒略日期; 月数——数值表达式,代表要调整的月数。若为正值则往后增加;若为负值,则往前减少 | 注意 | 若日期为29~31的日期,位移后碰到小月,则日期可能会在次月的月初。 | 范例 | IncMonth(39417,1) 取得2007/12/1增加一个月的儒略日日期,返回值为39448,表示2008/1/1。 IncMonth(36252, -2) 取得1999/4/2
向前两个月的儒略日日期,返回值为36193,表示1999/2/2。 |
JulianToDate | 说明 | 将指定的儒略日转换为EL日期返回。 儒略日的整数部分表示从1990.01.01至今的天数,小数部分表示午夜零点开始至现在时间与一天24小时的比值。 EL日期格式为YYYMMdd,YYY表示从1900年至今的年份,MM表示月份,dd表示日期。 | 语法 | JulianToDate(儒略日) | 参数 | 儒略日——数值表达式,代表儒略日期 | 范例 | JulianToDate (39448) 返回值为1080101, 代表2008/1/1。 JulianToDate (36252) 返回值为990402, 代表1999/4/2。 |
LastCalcJDate | 说明 | 返回最后一根K线的儒略日日期。 儒略日的整数部分表示从1990.01.01至今的天数,小数部分表示午夜零点开始至现在时间与一天24小时的比值。 | 语法 | LastCalcJDate | 范例 | 最后一根K线的日期为2008/1/1时,LastCalcJDate
返回值为39448。 |
LastCalcMMTime | 说明 | 返回从凌晨开始到最后一根完成K线所经过的时间,以分钟计算。 | 语法 | LastCalcMMTime | 范例 | 最后一根K线的时间是2:10PM,则LastCalcMMTime返回值为850 |
LastCalcSSTime | 说明 | 返回从凌晨开始到最后一根K线所经过的时间,以秒数计算。 | 语法 | LastCalcSSTime | 范例 | 最后一根K线的时间是2:10:30 PM,则LastCalcSSTime返回值为51030 |
MilliSecondsFromDateTime | 说明 | 保留以供将来使用 |
MinutesFromDateTime | 说明 | 依儒略日取得分钟。 儒略日的整数部分表示从1990.01.01至今的天数,小数部分表示午夜零点开始至现在时间与一天24小时的比值。 | 语法 | MinutesFromDateTime(儒略日) | 参数 | 儒略日——数值表达式,儒略日格式的日期时间。 | 范例 | MinutesFromDateTime(39449.35000000) 返回值为24,表示取得39449.35000000(8:24AM)的分钟数24。 |
Monday | 说明 | 返回数值1,表示星期一。 | 语法 | Monday | 范例 | Monday返回值1 |
Month | 说明 | 取得指定EL日期的月份。 EL日期格式为YYYMMdd,YYY表示从1900年至今的年份,MM表示月份,dd表示日期。 | 语法 | Month(YYYMMdd) | 参数 | YYYMMdd——数值表达式,YYYMMdd格式EL日期。 | 范例 | Month (1080101) 返回值为1,表示月份为一月。 Month (990605) 返回值为6,表示月份为六月。 |
MonthFromDateTime | 说明 | 取得指定儒略日日期的月份。 儒略日的整数部分表示从1990.01.01至今的天数,小数部分表示午夜零点开始至现在时间与一天24小时的比值。 | 语法 | MonthFromDateTime(儒略日) | 参数 | 儒略日——数值表达式,儒略日格式的日期时间。 | 范例 | MonthFromDateTime (39600.25000000) 返回值为6,表示月份为六月。 |
Saturday | 说明 | 返回数值6,代表星期六。 | 语法 | Saturday | 范例 | Saturday返回数值6 |
SecondsFromDateTime | 说明 | 依儒略日取得秒数。 儒略日的整数部分表示从1990.01.01至今的天数,小数部分表示午夜零点开始至现在时间与一天24小时的比值。 | 语法 | SecondsFromDateTime(儒略日) | 参数 | 儒略日——数值表达式,儒略日格式的时间。 | 范例 | SecondsFromDateTime(39449.35440000)返回值为20,表示39449.35440000(8:30:20 AM)秒数为20. |
StringToDate | 说明 | 将日期字符串转换成儒略日的格式。日期的格式为”mm/dd/yy”*或”mm/dd/yyyy”* | 语法 | 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对应的儒略日。 |
StringToDateTime | 说明 | 将日期时间字符串转换成儒略日的格式。日期时间字符串格式为"MM/dd/yy hh:mm:ss tt"* 或 "MM/dd/yyyy hh:mm:ss tt"* | 语法 | 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. |
StringToTime | 说明 | 将时间字符串转换为儒略日的格式。时间字符串格式为"hh:mm:ss tt"。 | 语法 | StringToTime("hh:mm:ss tt") | 参数 | hh——小时,采用12小时制,搭配AM/PM使用。 Mm——分钟 ss——秒数 tt——AM/PM | 注意 | 日期时间格式默认是US时区的日期时间格式,日期时间格式可以通过WIN系统的控制面板中设定地区及语言来设置。 | 范例 | StringToTime ("08:00:00 AM")返回值为 0.33333333 StringToTime ("04:48:00 PM")返回值为 0.70000000 |
Sunday | 说明 | 返回数值0,表示星期日 | 语法 | Sunday | 范例 | Sunday返回值为0 |
Thursday | 说明 | 返回数值4,表示星期四 | 语法 | Thursday | 范例 | Thursday返回值为4 |
Time_s2Time | 说明 | 将时间格式由HHmmss调整成HHmm,返回值格式为24小时HHmm格式,例如1300 = 1:00PM。指定时间为24小时制HHmmss格式,例如130000 = 1:00:00 PM. | 语法 | Time_s2Time(HHmmss) | 参数 | HHmmss——数值表达式,要转换的时间。 | 范例 | Time_s2Time(101520)返回值为1015 Time_s2Time(154548)返回值为1545 |
Time2Time_s | 说明 | 将时间格式由HHmm调整为HHmmss,返回值格式为24小时HHmmss格式。例如130000 = 1:00:00 PM, 指定时间为24小时制HHmm格式,例如1300 = 1:00 PM. | 语法 | Time2Time_s(HHmm) | 参数 | HHmm——数值表达式,要转换的时间 | 范例 | Time2Time_s(1015) 返回值为 101500 Time2Time_s(1545) 返回值为154500 |
TimeToString | 说明 | 依儒略日格式的时间转换成字符串。 | 语法 | TimeToString(儒略日) | 参数 | 儒略日——数值表达式,儒略日格式的时间。 | 注意 | *日期时间格式默认是US时区的日期时间格式,日期时间格式可以通过WIN系统的控制面板中设定地区及语言来设置。 | 范例 | TimeToString(39448.75000000)返回字符串 "6:00 PM" |
Tuesday | 说明 | 返回数值2,表示星期二 | 语法 | Tuesday | 范例 | Tuesday返回数值2 |
Wednesday | 说明 | 返回数值3,表示星期三 | 语法 | Wednesday | 范例 | Wednesday返回数值3 |
Year | 说明 | 返回指定日期的年份 EL日期格式为YYYMMdd,YYY表示从1900年至今的年份,MM表示月份,dd表示日期。 | 语法 | Year(YYYMMdd) | 参数 | YYYMMdd——数值表达式,表示YYYMMdd格式时间。 | 范例 | Year(1080101) 返回值为108,表示2008年
Year(990605) 返回值为99,表示1999年
|
YearFromDateTime | 说明 | 依儒略日取得年份 | 语法 | YearFromDateTime(儒略日) | 参数 | 儒略日——数值表达式,代表儒略日的日期 | 范例 | YearFromDateTime(39449.25000000)返回值为2008,表明年份是2008 |
|
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|