Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

x2mdate

Excel 日期序列值转 MATLAB 日期序列值或日期时间格式

说明

示例

MATLABDate = x2mdate(ExcelDateNumber,Convention) 将 Excel® 日期序列值转换为 MATLAB® 日期序列值或日期时间格式。

MATLAB 日期数字以 1(= 公元 0000 年 1 月 1 日)开始,因此相对于 1900 年的日期系统有 693960 的差值,或相对于 1904 年的日期系统有 695422 的差值。此函数适用于 Spreadsheet Link™ 软件。

MATLABDate = x2mdate(___,outputType) 使用可选的输入参数 outputType 将 Excel 日期序列值转换为 MATLAB 日期序列值或日期时间格式。

输出的类型由可选的 outputType 输入决定。如果 outputType'datenum',则 MATLABDate 是日期序列值。如果 outputType'datetime',则 MATLABDate 是日期时间数组。默认情况下,outputType'datenum'

示例

全部折叠

给定 1904 年系统中的 Excel® 日期数字,将其转换为 MATLAB® 日期序列值,然后转换为日期字符向量。

ExDates = [35423  35788  36153];
MATLABDate = x2mdate(ExDates, 1)
MATLABDate = 1×3

      730845      731210      731575

datestr(MATLABDate)
ans = 3x11 char array
    '25-Dec-2000'
    '25-Dec-2001'
    '25-Dec-2002'

或者,使用可选输入 outputType 指定 'datetime' 返回日期时间格式。

ExDates = [35423  35788  36153];
MATLABDate = x2mdate(ExDates, 1,'datetime')
MATLABDate = 1x3 datetime
   25-Dec-2000   25-Dec-2001   25-Dec-2002

输入参数

全部折叠

Excel 日期序列值,指定为 Excel 日期序列值的标量或向量。

数据类型: double

Excel 日期系统的标志,指定为值为 01 的数值的标量或向量。Convention 必须为标量,否则必须与 ExcelDateNumber 的大小相同。

Convention = 0(默认值)时,Excel 1900 年日期系统生效。当 Convention = 1 时,使用的是 Excel 1904 年日期系统。

在 Excel 1900 年的日期系统中,Excel 日期序列值 1 对应于公元 1900 年 1 月 1 日。在 Excel 1904 年日期系统中,日期数字 0 为公元 1904 年 1 月 1 日。

由于 Excel 软件中的限制,1900 年被视为闰年。因此,Excel 软件报告的 1900 年 1 月 1 日至 1900 年 2 月 28 日(含)之间的所有 DATEVALUE 值与 MATLAB 报告的值都差 1。例如:

  • 在 Excel 软件中,1900 年 1 月 1 日 = 1

  • 在 MATLAB 中,1900 年 1 月 1 日 – 693960(适用于 1900 年日期系统)= 2

    datenum('Jan 1, 1900') - 693960
    ans =
    
         2

数据类型: logical

输出日期格式,指定为值为 'datenum''datetime' 的字符向量。如果指定了 'datenum',则输出 MATLABDate 为日期序列格式;如果指定了 'datetime',则输出为日期时间格式。默认情况下,输出为日期序列格式。

数据类型: char

输出参数

全部折叠

MATLAB 日期,以日期序列值或日期时间格式返回。

输出类型由可选的 outputType 输入参数决定。如果 outputType'datenum',则 MATLABDate 是日期序列值。如果 outputType'datetime',则 MATLABDate 是日期时间数组。默认情况下,outputType'datenum'

在 R2006a 之前推出