Main Content

calmonths

日历持续时间(以月为单位)

说明

示例

M = calmonths(X) 返回一个数组,该数组表示等效于 X 中的值的日历月。

  • 如果 X 为数值数组,则 McalendarDuration 数组,其中每个元素与 X 的对应元素中的日历月数相等。

  • 如果 XcalendarDuration 数组,则 Mdouble 数组,其中每个元素与 X 的对应元素中的整日历月数相等。

calmonths 函数创建的月份会在日历计算中考虑到不同日历月的长度。

示例

全部折叠

X = magic(4);
M = calmonths(X)
M = 4x4 calendarDuration
   1y 4mo      2mo      3mo   1y 1mo
      5mo     11mo     10mo      8mo
      9mo      7mo      6mo       1y
      4mo   1y 2mo   1y 3mo      1mo

创建一个 datetime 值,其日期部分是 1 月底。

D = datetime('2021-01-31')
D = datetime
   31-Jan-2021

使用 calmonths 函数将一个日历月数组添加到 D。由于 2 月的天数少于 1 月,因此在 1 月 31 日后增加一个日历月很明显会是 2 月 28 日,因为 2021 年不是闰年。

D = D + calmonths(0:2)
D = 1x3 datetime
   31-Jan-2021   28-Feb-2021   31-Mar-2021

现在创建一个 datetime 值,其日期部分是 2 月底。

D2 = datetime('2021-02-28')
D2 = datetime
   28-Feb-2021

日历月份有不同长度。但是,3 月和 4 月的天数比 2 月多。因此,在 2 月 28 日后添加日历月会出现 3 月 28 日和 4 月 28 日。

D2 = D2 + calmonths(0:2)
D2 = 1x3 datetime
   28-Feb-2021   28-Mar-2021   28-Apr-2021

要确保 D2 具有月末值,请使用 dateshift 函数。

D2 = dateshift(D2,'end','month')
D2 = 1x3 datetime
   28-Feb-2021   31-Mar-2021   30-Apr-2021

创建一个日历持续时间数组。然后,将每个值转换为等效的整数日历月数。

X = calmonths(15:17) + caldays(8) + hours(1.2345)
X = 1x3 calendarDuration
   1y 3mo 8d 1h 14m 4.2s   1y 4mo 8d 1h 14m 4.2s   1y 5mo 8d 1h 14m 4.2s

M = calmonths(X)
M = 1×3

    15    16    17

输入参数

全部折叠

输入数组,指定为数值数组、日历持续时间数组或逻辑数组。如果 X 是数值数组,则它必须仅包含整数值。即,您不能创建带小数的日历单位。

扩展功能

基于线程的环境
使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。

版本历史记录

在 R2014b 中推出