Main Content

dateshift

日付のシフトと日付および時刻のシーケンスの生成

説明

t2 = dateshift(t,'start',unit) は、datetime 配列 t の各値を unit で指定された時間単位の最初の値に後方シフトします。出力 t2 は、t と同じサイズです。

たとえば、2021 年 6 月 27 日の午前 9:14 を時の最初の値にシフトすると、シフト後の値は 2021 年 6 月 17 日の午前 9:00 になります。月の最初の値にシフトすると、シフト後の値は 2021 年 6 月 1 日の午前 12:00 になります。

t2 = dateshift(t,'end',unit) は、各値を unit で指定された時間単位の最後の値に前方シフトします。

  • 日、時、分、秒の最後の値は、次の日、時、分、秒の最初の値でもあります。たとえば、2021 年 6 月 27 日の午前 9:14 を時の最後の値にシフトすると、シフト後の値は 2021 年 6 月 17 日の午前 10:00 になります。

  • 年、四半期、月、週の最後の値は、その年、四半期、月、週の最終日が始まる午前 0 時です。たとえば、2021 年 6 月 17 日の午前 9:14 を月の最後の値にシフトすると、シフト後の値は 2021 年 6 月 30 日の午前 12:00 になります。

t2 = dateshift(t,'dayofweek',dow) は、配列 t のそれぞれの datetime 値について、次に指定した曜日になる日にシフトします。t の日付が既に指定した曜日の場合、dateshift は同じ日付を返します。

t2 = dateshift(t,'dayofweek','weekend') は、配列 t のそれぞれの datetime 値について、次に週末 (土曜日または日曜日) になる日にシフトします。

t2 = dateshift(t,'dayofweek','weekday') は、配列 t のそれぞれの datetime 値について、次に平日 (月曜日から金曜日) になる日にシフトします。

t2 = dateshift(___,rule) は、配列 t の各値を rule で指定されたパターンに従ってシフトします。この構文では、前述の構文の引数のいずれかを使用できます。

すべて折りたたむ

現在の日付の datetime 値を作成します。

t = datetime('today')
t = datetime
   26-Feb-2022

日付を年の初日にシフトします。

t2 = dateshift(t,'start','year')
t2 = datetime
   01-Jan-2022

現在の日付の datetime 値を作成します。

t = datetime('today')
t = datetime
   26-Feb-2022

日付を同じ月の最終日にシフトします。

t2 = dateshift(t,'end','month')
t2 = datetime
   28-Feb-2022

datetime 値を作成します。

t = datetime('today')
t = datetime
   26-Feb-2022

日付を次の月の初日にシフトします。

t2 = dateshift(t,'start','month','next')
t2 = datetime
   01-Mar-2022

日付を次の月の最終日にシフトします。

t3 = dateshift(t,'end','month','next')
t3 = datetime
   31-Mar-2022

datetime 配列を作成します。曜日と日付を表示するように書式設定します。

配列の各日付を次の金曜日にシフトします。

t = [datetime(2014,08,03) datetime(2014,04,15)];
t.Format = 'eeee, dd MMM yyyy'
t = 1x2 datetime
   Sunday, 03 Aug 2014    Tuesday, 15 Apr 2014

日付を次の金曜日にシフトします。

t2 = dateshift(t,'dayofweek','Friday')
t2 = 1x2 datetime
   Friday, 08 Aug 2014   Friday, 18 Apr 2014

日付を前の月曜日にシフトします。

t3 = dateshift(t,'dayofweek','Monday','previous')
t3 = 1x2 datetime
   Monday, 28 Jul 2014   Monday, 14 Apr 2014

datetime 配列を作成します。曜日と日付を表示するように書式設定します。

t = [datetime(2021,5,30) datetime(2021,6,4)];
t.Format = 'eeee, dd MMM yyyy'
t = 1x2 datetime
   Sunday, 30 May 2021   Friday, 04 Jun 2021

t の各値を次に週末になる最初の日にシフトします。日曜日は既に週末の日であるため、最初の datetime 値はシフトされません。一方、2 番目の値は金曜日から日曜日にシフトします。

t2 = dateshift(t,'dayofweek','weekend')
t2 = 1x2 datetime
   Sunday, 30 May 2021     Saturday, 05 Jun 2021

datetime 配列を作成します。曜日と日付を表示するように書式設定します。

t = [datetime(2021,5,30) datetime(2021,6,4)];
t.Format = 'eeee, dd MMM yyyy'
t = 1x2 datetime
   Sunday, 30 May 2021   Friday, 04 Jun 2021

t の各値を次に平日になる最初の日にシフトします。日曜日は月曜日にシフトします。金曜日は既に平日の日であるため、2 番目の datetime 値はシフトされません。

t2 = dateshift(t,'dayofweek','weekday')
t2 = 1x2 datetime
   Monday, 31 May 2021   Friday, 04 Jun 2021

今日から数えて 5 週目の最終日の日付を求めます。

t = datetime('today');
t.Format = 'eeee, dd MMM yyyy'
t = datetime
   Saturday, 26 Feb 2022

t2 = dateshift(t,'end','week',5)
t2 = datetime
   Saturday, 02 Apr 2022

次の 3 回の金曜日で構成される日付のシーケンスを生成します。

t = datetime('today')
t = datetime
   26-Feb-2022

t2 = dateshift(t,'dayofweek','Friday',1:3)
t2 = 1x3 datetime
   04-Mar-2022   11-Mar-2022   18-Mar-2022

入力引数

すべて折りたたむ

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

時間の単位。次の値のいずれかとして指定します。

  • 'year'

  • 'quarter'

  • 'month'

  • 'week'

  • 'day'

  • 'hour'

  • 'minute'

  • 'second'

例: t2 = dateshift(t,'start','hour')

例: t2 = dateshift(t,'end','month')

曜日の名前または番号。ローカライズされた曜日名の string スカラーまたは文字ベクトル、あるいは 1 から 7 までの整数として指定します。

1 から 7 までの整数と対応する曜日を次の表に示します。

1

日曜日

2

月曜日

3

火曜日

4

水曜日

5

木曜日

6

金曜日

7

土曜日

例: t2 = dateshift(t,'dayofweek','Sunday')

例: t2 = dateshift(t,'dayofweek',1)

datetime 値をシフトするルール。'next''previous''nearest''current'、スカラー整数、整数の配列のいずれかとして指定します。

次の表では、datetime 値をシフトするルールを説明します。

規則説明

'next'

datetime 値を次の時間単位または指定曜日にシフトします。

メモ: このルールは、'dayofweek' 入力引数の既定ルールです。

'previous'

datetime 値を前の時間単位または指定曜日にシフトします。

'nearest'

datetime 値を最も近い時間単位または指定曜日にシフトします。

このルールを使用して datetime 値を丸めることができます。

'current'

datetime 値を現在の時間単位内で、あるいは現在の週の指定曜日にシフトします。

メモ: このルールは、'start' 入力引数と 'end' 入力引数の既定ルールです。

1

'next' ルールと等価です。

n (n > 1)

'next' ルールを n 回適用することと等価です。

0

'current' ルールと等価です。

-1

'previous' ルールと等価です。

-n (n > 1)

'previous' ルールを n 回適用することと等価です。

整数の配列

t の各値を rule の対応する整数で指定されたルールに従ってシフトします。

入力引数 t および rule は同じサイズであるか、一方がスカラーでなければなりません。

datetime 値が 'dayofweek' 引数と一致する場合の動作

'dayofweek' が指定され、t にその指定曜日に該当する datetime 値が含まれる場合、dateshift はそれらの datetime 値を次の週または前の週の指定曜日として扱います。

たとえば、dateshift(datetime(2015,12,24),'dayofweek','Thursday',rule) は、rule'next''previous''nearest'1 または -1 である場合に、2015 年 12 月 24 日の日付をもつ datetime 値を返します。これは、2015 年 12 月 24 日が木曜日だからです。

拡張機能

バージョン履歴

R2014b で導入

参考

|