Main Content

caldiff

カレンダーの連続する差分の計算

説明

dt = caldiff(t) は、t 内の連続する datetime 値の差分を計算し、その期間のカレンダー成分 (年、月、日、時刻) の数値を返します。caldiff は、サイズが 1 でない最初の配列次元に沿って差分を計算します。

  • t が、長さ m のベクトルの場合、dt = caldiff(t) は長さが m-1 のベクトルを返します。dt の要素は、t の隣接する要素間の差分です。

    dt = [between(t(1),t(2)), between(t(2),t(3)),..., between(t(m-1),t(m))]
  • t がベクトルではなく pm 列の行列である場合、dt = caldiff(t) はサイズが (p-1)m 列の行列を返します。この行列の要素は t の行間の差分になります。

    dt(:,I) = [between(t(1,I),t(2,I), between(t(2,I),t(3,I)), ..., 
    between(t(p-1,I),t(p,I))]

dt = caldiff(t,components) は、t 内の隣接する datetime の差分を計算し、指定されたカレンダー成分または時刻の成分で返します。

dt = caldiff(t,components,dim) は、連続する datetime の差分を dim で指定された次元に沿って計算します。

すべて折りたたむ

datetime 配列を作成し、それらの値の差分を表すカレンダー成分の数値を計算します。

t = [datetime('yesterday');datetime('today');datetime('tomorrow')]
t = 3x1 datetime
   24-Jan-2024
   25-Jan-2024
   26-Jan-2024

D = caldiff(t)
D = 2x1 calendarDuration
   1d
   1d

datetime 配列を作成し、それらの値の差分を表す日数を計算します。

t = datetime('now') + calmonths(0:3)
t = 1x4 datetime
   25-Jan-2024 22:20:09   25-Feb-2024 22:20:09   25-Mar-2024 22:20:09   25-Apr-2024 22:20:09

D = caldiff(t,'days')
D = 1x3 calendarDuration
   31d   29d   31d

datetime 値の差分を計算し、週数と日数で表します。

D = caldiff(t,{'weeks','days'})
D = 1x3 calendarDuration
   4w 3d   4w 1d   4w 3d

入力引数

すべて折りたたむ

入力の日付と時刻。datetime 配列として指定します。

カレンダー成分または時刻の成分。次の文字ベクトルの 1 つとして指定するか、これらの値を 1 つ以上含む cell 配列または string 配列として指定します。

  • 'years'

  • 'quarters'

  • 'months'

  • 'weeks'

  • 'days'

  • 'time'

'time' を除き、これらの成分が表す時間の長さは一定ではありません。たとえば 1 か月の時間の長さは、1 月の datetime に追加する場合と 2 月の datetime に追加する場合とで異なります。

caldiff は、カレンダーまたは時刻の成分を大きいものから降順に処理します。

一般に、components'time' を含めない限り、t(2:m)t(1:m-1) + dt と等しくなりません。

例: {'years','quarters'}

データ型: char | cell | string

演算の対象の次元。正の整数として指定します。値が指定されていない場合、既定値はサイズが 1 ではない最初の配列次元です。

出力引数

すべて折りたたむ

差分配列。スカラー、ベクトル、行列または多次元 calendarDuration 配列として返されます。

ヒント

  • t1t2 の datetime の連続する差分を正確な固定長の単位 (時間、分、秒) で計算するには、diff(t) を使用します。

拡張機能

バージョン履歴

R2014b で導入