36.1时间工具

Octave用于操作时间值的核心函数集以标准C库中的相应函数为模式。其中一些函数使用了一种时间数据结构,其中包括以下元素:

usec

秒后的微秒(0-999999)。

分钟后的秒数(0-60)。这个数字可以是60来说明闰秒。

min

小时后几分钟(0-59)。

小时

自午夜(0-23)起的小时数。

mday

一个月的哪一天(1-31)。

星期一

自1月以来的几个月(0-11)。

自1900年以来的岁月。

wday

自周日(0-6)以来的天数。

yday

自1月1日起的天数(0-365)。

isdst

夏令时标志。

gmtoff

从UTC偏移的秒数。

时区。

在以下函数的描述中,此结构体被称为tm_结构体.

 
:= 时间 ()

返回当前时间作为自epoch以来的秒数。

历元参考1970年1月1日00:00:00 UTC(协调世界时)。例如,1997年2月17日星期一07:15:06 UTC,返回的值为时间为856163706。

详见: strftime,strptime,当地时间,gmtime,mktime,现在,日期,时钟,日期编号,日期str,日期向量,日历,周工作日.

 
:t= 现在 ()

将当前的本地日期/时间作为序列号返回(详见日期编号).

整体部分,地板(现在)对应于今天和1月1日之间的天数。

分数部分,rem(现在,1)对应于当前时间。

详见: 时钟,日期,日期编号.

 
:str= ctime (t)

转换从返回的值时间(或任何其他非负整数),返回到本地时间,并返回与相同形式的字符串asctime.

函数ctime(时间)相当于asctime(本地时间)例如

ctime(时间())⇒ “1997年2月17日星期一01:15:06\n”

详见: asctime,时间,当地时间.

 
:tm_结构体= gmtime (t)

给定从返回的值时间,或任何非负整数,返回与UTC(协调世界时)对应的时间结构体。

例如

gmtime(时间())⇒ {使用时间=0秒=6分钟=15小时=7天=17个月=1年=97天=1天=47天=0 gmtoff=0区域=GMT}

详见: strftime,strptime,当地时间,mktime,时间,现在,日期,时钟,日期编号,日期str,日期向量,日历,周工作日.

 
:tm_结构体= 当地时间 (t)

给定从返回的值时间,或任何非负整数,返回与本地时区对应的时间结构体。

本地时间(时间())⇒ {使用时间=0秒=6分钟=15小时=1个月=17个月=1年=97天=1天=47天=0 gmtoff=-21600区域=CST}

详见: strftime,strptime,gmtime,mktime,时间,现在,日期,时钟,日期编号,日期str,日期向量,日历,周工作日.

 
:= mktime (tm_结构体)

将与本地时间对应的时间结构体转换为自epoch以来的秒数。

例如

mktime(本地时间(时间()))⇒ 856163706

详见: strftime,strptime,当地时间,gmtime,时间,现在,日期,时钟,日期编号,日期str,日期向量,日历,周工作日.

 
:str= asctime (tm_结构体)

使用以下格式将时间结构体转换为字符串:“ddd mmm mm HH:mm:SS yyyy\n”.

例如

asctime(本地时间(时间()))⇒ “1997年2月17日星期一01:15:06\n”

这相当于ctime(时间()).

详见: ctime,当地时间,时间.

 
:str= strftime (fmt,tm_结构体)

格式化时间结构体tm_结构体以灵活的方式使用formatstringfmt包含'%'替换类似于输出函数.

除非另有说明,否则被替换的字段具有固定的大小;如有必要,会填充数字字段。默认情况下,填充为零;对于显示单个数字的字段,可以通过以下方式更改或禁止填充%'使用下面描述的一个修饰符。未知字段值被复制为普通字符。所有其他字符都会被复制到输出中,而不会发生更改。例如

strftime(“%r(%Z)%A%e%B%Y”,本地时间(时间()))⇒ “1997年2月17日星期一上午01:15:06(CST)”

Octave的strftime函数支持ANSI C字段值的超集。

文字字符字段:

%%

符号

n

换行符。

%t

制表符。

数字修饰符(非标准扩展):

冲撞

请勿填充字段。

强调

用空格填充字段。

时间字段:

H

小时(00-23)。

小时(01-12)。

k

小时(0-23)。

%l

小时(1-12)。

M

分钟(00-59)。

</p>

当地时间上午或下午。

r

时间,12小时(hh:mm:ss[AP]M)。

R

时间,24小时(hh:mm)。

s

自1970年1月1日00:00:00以来的时间(以秒为单位)(非标准扩展)。

S

第二(00-61)。

T

时间,24小时(hh:mm:ss)。

十、

区域设置的时间表示形式(%H:%M:%s)。

z

与UTC的偏移量(±hhmm),如果无法确定时区,则为零。

Z

时区(EDT),如果没有可确定的时区,则不确定。

日期字段:

a

区域设置的缩写工作日名称(Sun-Sat)。

A.

区域设置的完整工作日名称,可变长度(周日-周六)。

b

Locale的缩写月份名称(Jan-Dec)。

B

区域设置的完整月份名称,可变长度(1月-12月)。

c

当地的日期和时间(美国东部时间1989年11月4日星期六12:02:33)。

C

世纪(00-99)。

d

年月日(01-31)。

e

月份的哪一天(1-31)。

D

日期(mm/dd/yy)。

%h

与%b相同。

j

一年中的某一天(001-366)。

%m

月份(01-12)。

U

一年中的周数,周日为一周的第一天(00-53)。

w

星期几(0-6)。

W

一年中的周数,星期一为一周的第一天(00-53)。

%x

区域设置的日期表示(mm/dd/yy)。

y

年份的最后两位数字(00-99)。

Y

年份(1970年-)。

详见: strptime,当地时间,gmtime,mktime,时间,现在,日期,时钟,日期编号,日期str,日期向量,日历,周工作日.

 
:[tm_结构体,nchars] = strptime (str,fmt)

转换字符串str到时间结构体tm_结构体在格式字符串的控制下fmt.

如果fmt未能匹配,nchars为0;否则,它被设置为最后匹配的字符加1的位置。请始终检查这一点,除非您确信日期字符串将被正确解析。

详见: strftime,当地时间,gmtime,mktime,时间,现在,日期,时钟,日期编号,日期str,日期向量,日历,周工作日.

本节中描述的大多数剩余函数都不是以标准C库为模式的。有些可与兼容MATLAB并且提供其他的是因为它们是有用的。

 
:日期向量= 时钟 ()
:[日期向量,isdst] = 时钟 ()

将当前本地日期和时间作为日期向量返回。

日期向量包含以下字段:当前年份、月份(1-12)、日期(1-31)、小时(0-23)、分钟(0-59)和秒(0-61)。秒字段在小数点后有一个小数部分,以提高精度。

可选的第二个输出isdst如果夏令时(DST)对系统的时区有效,则为true。

例如

修复(时钟())⇒   1993      8     20      4     56      1

时钟在具有获取日期作用

详见: 现在,日期,日期向量.

 
:str= 日期 ()

以字符串形式返回当前日期,格式为DD-MMM-YYYY。

例如

日期⇒ 1993年8月20日

详见: 现在,时钟,日期str,当地时间.

 
:= etime (t2,t1)

返回从返回的两个时间值之间的差值(以秒为单位)时钟(t2-t1).

例如

t0=时钟();#许多计算之后。。。elapsed_time=etime(时钟(),t0);

将设置变量经过的时间到变量之后的秒数t0已设置。

详见: 抽搐,toc,时钟,cputime,添加日期.

 
:[全部的,使用者,系统] = cputime ();

返回Octave会话使用的CPU时间。

第一个输出是执行进程所花费的总时间,等于第二个和第三个输出的总和,这两个输出分别是在用户模式下执行的CPU秒数和在系统模式下执行所花费的CPU秒数来表示。

如果您的系统无法返回CPU时间使用情况,cputime为其每个输出值返回0。

请注意,从于Octave启动时使用了一些CPU时间,因此检查是否合理cputime通过检查所用的CPU总时间是否为非零来工作。

详见: 抽搐,toc.

 
:tf= is_leap_year ()
:tf= is_leap_year ()

如果返回true是闰年,否则是假的。

如果没有指定年份,is_leap_year使用当前年份。

例如

is_leap_year(2000)⇒ 1.

详见: 周工作日,eomday,日历.

 
:抽搐 ()
:id= 抽搐 ()

初始化挂钟计时器。

使命感抽搐如果没有输出参数,则重置内部计时器。对的后续调用toc返回自设置计时器以来的秒数。

如果用一个输出参数调用,抽搐创建一个新的定时器实例并返回一个定时器标识符id这个id是类型的标量uint64可以传递给toc以检查此计时器上的运行时间,而不是默认的内部计时器。

示例1:具有内部计时器的基准测试代码

tic;#许多计算之后。。。elapsed_time=toc;

示例2:混合计时器id和内部计时器

抽搐;暂停(1);toc⇒ 经过时间为1.0089秒。id=tic;暂停(2);toc(id)⇒ 运行时间为2.01142秒。toc运行时间为3.02308秒。

使命感抽搐toc以这种方式允许嵌套的定时调用。

如果您对进程使用的CPU时间更感兴趣,则应使用cputime函数。这个抽搐toc函数返回调用之间经过的实际挂钟时间。这可能包括处理其他工作或什么都不做的时间。

详见: toc,cputime.

 
:toc ()
:toc (id)
:经过的时间= toc (…)

用挂钟计时器测量经过的时间。

在不带参数的情况下,返回上次调用的内部时间所用的秒数抽搐.

当给定标识符时id对于特定计时器,返回自计时器以来经过的秒数id已初始化。

详见抽搐,例如使用抽搐/toc.

详见: 抽搐,cputime.

 
:暂停 ()
:暂停 (n)
:旧状态= 暂停 在…上
:旧状态= 暂停
:旧状态= 暂停 查询

暂停程序的执行或更改暂停函数的状态。

如果在没有输入参数的情况下调用,则程序将挂起,直到输入一个构造函数。If自变量n是一个正的实数,表示程序应暂停的秒数,例如:

抽搐;停顿(0.05);toc-|运行时间为0.05039秒。

以下示例打印一条消息,然后等待5秒钟,然后清除屏幕。

disp(“请稍候…”);暂停(5);clc;

如果使用字符串参数调用on,查询,暂停函数的状态被更改或查询。状态为,暂停函数立即返回。可选返回值包含暂停函数的先前状态。在以下示例中,暂停在本地被禁用:

old_state=暂停(“关闭”);抽搐;停顿(0.05);toc-|运行时间为3.00407e-05秒。暂停(旧状态);

当程序暂停时,Octave仍然处理图形绘制和图形回调执行。

详见: kbhit.

 
:= 日期编号 (日期向量)
:= 日期编号 (,,白天)
:= 日期编号 (,,白天,小时)
:= 日期编号 (,,白天,小时,分钟)
:= 日期编号 (,,白天,小时,分钟,第二)
:= 日期编号 (“datestr”)
:= 日期编号 (“datestr”,f)
:= 日期编号 (“datestr”,</p>)
:[,] = 日期编号 (…)

将输入的日期/时间返回为连续的日期编号,将1月1日定义为第1天。

整数部分,地板)统计日期输入中的完整天数。

分数部分,雷姆(1.对应于给定日期的时间。

输入可以是日期向量(详见日期向量),日期字符串(详见日期str),或直接指定为输入。

当处理输入的日期串时,f是用于解释日期字符串的格式字符串(详见日期str). 如果没有格式f则通过各种格式执行相对较慢的搜索。最好指定formatstringf如果已知的话。不指定特定成分的格式的值将设置为零。未指定日期的格式将默认为当前年份的1月1日。

单独通过时,,白天等参数,每个参数都可以是标量或非标量数组。非标量输入必须全部具有相同的大小。标量输入将被扩展为非标量输入的大小。

</p>是本世纪初两位数年份的参考年份。如果未指定,则默认为当前年份减去50。

可选输出以比更高的精度保存指定日期的时间.

笔记:

  • 年份可以是负数和/或分数。
  • 低于1的月份被视为1月。
  • 一个月的天数从1开始。
  • 月底之后的几天将进入接下来的几个月。
  • 月初前几天将转到上一个月。
  • 天数可以是小数。

示例:

从datestrs:d=datenum(“1966-06-14”)转换⇒ d=718232

d=日期编号({“1966-06-14”、“1966-05-15”、“196 6-06-16”})⇒ d=718232 718233 718234

从datevec转换:d=datenum([1966 06 14])⇒ d=718232

d=日期([1966 06 14 23 59 59])⇒ d=718232.9999884259

分别指定日期组件:d=datenum(1966,6,14)⇒ d=718232

d=datenum(1966,魔术(3),1)⇒ d=718280 718068 718219 718127 718188 718249 718158 718311 718099

小心datenums将地球的特定时间表示为awhole。它们不考虑时区(基于时间和地点的变化),也不考虑夏令时引起的季节变化(基于当地法规的时间变化)。请注意,当函数解释时区和DST偏移时,可以创建日期编号,例如日期str,不存在或不明确。

小心此函数不会尝试处理儒略历1582年10月15日之前的日期错误多达11天。此外,请注意,只有罗马天主教国家在1582年采用了历法。直到1924年,它才被各地采用。有关详细信息,详见格里高利日历上的维基百科条目。

警告闰秒被忽略。维基百科上有一个闰秒表。

详见: 日期str,日期向量,现在,时钟,日期.

算法:Peter Baum(http://vsg.cape.com/~pbaum/date/date0.htm)

 
:str= 日期str (日期)
:str= 日期str (日期,f)
:str= 日期str (日期,f,</p>)

根据格式设置给定日期/时间的格式f并在中返回结果str.

日期是一个序列号(详见日期编号),adate向量(参见日期向量),或字符串或字符串的元胞数组。在后一种情况下,它被传递给日期向量猜测输入日期格式。

f可以是对应于下表中某个代码的整数,也可以是日期格式字符串。

</p>是本世纪初的年份,在其中可以解释两位数的年份。如果未指定,则默认为当前年份减去50。

例如,日期730736.65149(2000-09-07 15:38:09.0934)的格式如下:

密码 format 实例
0 年月日HH:MM:SS 2000年9月7日15:38:09
1 dd-mmm-yyyy 2000年9月7日
2 年月日 09/07/00
3 mmm 九月
4 m S
5 毫米 09
6 毫米/天 09/07
7 dd 07
8 ddd 清华大学
9 d T
10 年份 2000
11 yy 00
12 mmmyy 9月00日
13 HH:MM:SS 15:38:09
14 HH:MM:SS下午 下午3:38:09
15 HH:MM 15:38
16 HH:MM PM 下午3:38
17 QQ-y Q3-00
18 QQ Q3
19 dd/mm 07/09
20 年月日 07/09/00
21 年月日HH:MM:SS 2000年9月7日15:38:08
22 年月日 2000年9月7日
23 年/月/日 09/07/2000
24 年/月/日 07/09/2000
25 年/月/日 00/09/07
26 年/月/日 2000/09/07
27 QQ--yyy Q3-2000
28 mmmyyyy 2000年9月
29 日期格式 2000-09-07
30 yyyymmddTHMMSS 20000907T153808
31 yyyy-mm-dd HH:mm:SS 2000-09-07 15:38:08

如果f是一个格式字符串,可以识别以下符号:

象征 意思 实例
年份 全年 2005
yy 两位数年份 05
毫米 完整月份名称 十二月
mmm 缩写月份名称 十二月
毫米 数字月份编号(用零填充) 01, 08, 12
m 月份名称的第一个字母(大写) D
dddd 完整的工作日名称 星期日
ddd 工作日名称缩写 星期日
dd 数字日期(用零填充) 11
d 工作日名称的第一个字母(大写) S
HH 一天中的小时,用零填充, 09:00
如果设置了PM,则用空格填充 上午9:00
毫米 小时的分钟(用零填充) 10:05
SS 分秒(用零填充) 10:05:03
FFF 毫秒秒(用零填充) 10:05:03.012
调幅 使用12小时时间格式 上午11:30
颗粒物 使用12小时时间格式 晚上11:30

如果f未指定或-1,则使用0、1或16,具体取决于的日期部分还是时间部分日期是空的。

如果</p>未指定,则默认为当前年份减去50。

如果给定了日期的矩阵或元胞数组,则返回日期字符串的列向量。

详见: 日期编号,日期向量,日期,现在,时钟.

 
:v= 日期向量 (日期)
:v= 日期向量 (日期,f)
:v= 日期向量 (日期,</p>)
:v= 日期向量 (日期,f,</p>)
:[y,m,d,h,惯性矩,s] = 日期向量 (…)

转换序列号(详见日期编号)或日期字符串(详见日期str)转换为日期向量。

日期向量是一个有六个成员的行向量,分别表示年、月、日、小时、分钟和秒。

日期数字输入可以是标量数组,也可以是非标量数组。日期字符串可以是单个日期字符串,也可以是每行都是日期字符串的二维日期字符数组,或者是任何维度的数组字符串数组,每个数组元素都包含单个日期字符串。

v是一个二维的日期向量数组,每行一个日期向量。对于数组输入,排序v基于中日期的列主要顺序数据.

f是用于解释日期字符串的格式字符串(详见日期str). 如果日期是一个字符串或字符串的元胞数组,但未指定格式,使用启发式方法猜测输入格式。这些试探法可能会导致与用户预期的结果不同的匹配。此外,这涉及到通过各种格式进行相对较低的搜索。最好指定格式字符串f如果已知的话。未指定特定时间分量的格式的值将设置为零。不指定特定日期组件的格式将默认该组件为当前年份的1月1日。为了计算日期向量,即使后面的字符包含额外的时间/日期信息,也会忽略这些字符。

</p>是本世纪初两位数年份的参考年份。如果未指定,则默认为当前年份减去50。

详见: 日期编号,日期str,时钟,现在,日期.

 
:d= 添加日期 (d,q,f)

添加q时间量(单位f)到串行日期num,d.

f必须是其中之一,,白天,小时,分钟,第二“毫秒”.

详见: 日期编号,日期向量,etime.

 
:c= 日历 ()
:c= 日历 (d)
:c= 日历 (y,m)
:日历 (…)

以6x7矩阵形式返回当前月历。

如果d如果指定了,则返回包含日期的月份的日历d,必须是序列日期号或日期字符串。

如果ym如果指定了,则返回年份的日历y和月份m.

如果未指定输出参数,请在屏幕上打印日历,而不是返回矩阵。

详见: 日期编号,日期str.

 
:[n,s] = 周工作日 (d)
:[n,s] = 周工作日 (d,format)

在中以数字形式返回星期几n作为一个字符串s.

一周中的日子编号为1-7,第一天是星期日。

d是一个序列日期号或日期字符串。

如果字符串format不存在或等于短的然后s将包含工作日的缩写名称。如果format长的然后s将包含全名。

基于的返回值表format:

n 短的 长的
1 星期日 星期日
2 星期一 星期一
3 星期二 星期二
4 星期三 星期三
5 清华大学 星期四
6 星期五 星期五
7 星期六 星期六

详见: eomday,is_leap_year,日历,日期编号,日期向量.

 
:e= eomday (y,m)

返回当月的最后一天m年度y.

详见: 周工作日,日期编号,日期向量,is_leap_year,日历.

 
:日期刻度 ()
:日期刻度 (axis_str)
:日期刻度 (日期_格式)
:日期刻度 (axis_str,日期_格式)
:日期刻度 (…,“保持限制”)
:日期刻度 (…,“keepticks”)
:日期刻度 (hax, …)

将日期格式的刻度标签添加到轴。

应用刻度的轴从确定axis_str与价值观相悖“x”,yz。默认值为“x”.

标签的格式从变量决定日期_格式,可以是字符串或正整数日期str接受。

如果第一个参数hax是一个轴句柄,然后绘制到此轴,而不是返回的当前轴gca.

详见: 日期编号,日期str.


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号