Chapter 14 Date
Date
は、DateVector
の要素となる、スカラー型です。
##作成
Date d; //"1970-01-01"
Date d(1); //"1970-01-01" + 1day
Date d(1.1); //"1970-01-01" + ceil(1.1)day
Date( "2000-01-01", "%Y-%m-%d"); //default format is "%Y-%m-%d"
Date( 1, 2, 2000); // 2000-01-02 Date(mon, day, year)
Date( 2000, 1, 2); // 2000-01-02 Date(year, mon, day)
14.1 演算子
Date
には + - < > >= <= == !=
の演算子が定義されています。これらの演算子を用いることにより、日数の加算(+)、日数の差分計算(-)、日付の比較(<, <=, >, >=, ==, !=) を行えるようになります。
+ - < > >= <= == !=
// [[Rcpp::export]]
DateVector rcpp_date1(){
// Date の作成
Date d1("2000-01-01");
Date d2("2000-02-01");
int i = d2 - d1; //日付の差(日)
bool b = d2 > d1; //日付の比較
Rcout << i << "\n"; // 31
Rcout << b << "\n"; // 1
// d1 に 1 日加算した結果を日付ベクトルに代入します。
DateVector date(1);
date[0] = d1 + 1;
return date; // 2000-01-02
}
##メンバ関数
###getDay()
日付の日を返します。
###getMonth()
日付のの月を返します。
###getYear()
日付の年を返します。
###getWeekday()
日付の曜日を int で返します。返値は 1=Sun 2=Mon 3=Tue 4=Wed 5=Thu 6=Sat に対応します。
###getYearday()
1月1日を 1 、12月31日を 365 とした年間を通した日付の番号を返します。
###is_na()
このオブジェクトが NA であるなら true
を返します。
##実行例
Date d("2016-1-1");
Rcout << d.getDay() << endl; //1
Rcout << d.getMonth() << endl; //1
Rcout << d.getYear() << endl; //2016
Rcout << d.getWeekday() << endl; //6
Rcout << d.getYearday() << endl; //1