Calendarクラスで、今日、明日、明後日、昨日、一昨日、来年、昨年の日付を取得する

## 目次
　[1.DateクラスとCalendarクラスのちがい](#1-DateクラスとCalendarクラスのちがい)
　[2.今日、明日、明後日、昨日、一昨日、来年、昨年の日付を取得する](#2-今日明日明後日昨日一昨日来年昨年の日付を取得する)

## 1. DateクラスとCalendarクラスのちがい
### Dateクラス
簡単に日付を表示したい場合などに使用。
現在は非推奨のため基本的にCalendarクラスを使用するのが望ましい。

```java
package jp.co.study.sample;

import java.util.Date;

public class Qiita {
	public static void main (String args[]) {
		
		Date date = new Date();
		System.out.println(date.toString());
	}
}
```
出力結果は、Thu Jan 19 19:07:48 JST 2023

下記のようにすると、フォーマットを指定できる。
```java
package jp.co.study.sample;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

public class Qiita {
	public static void main (String args[]) {
		
		Date date = new Date();
		
		// フォーマットの設定
		String strformat1 = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(date);
		System.out.println(strformat1);
		String strDateDormat2 = new SimpleDateFormat("yyyy/M/d",Locale.US).format(date);
		System.out.println(strDateDormat2);
		String strDateDormat3 = new SimpleDateFormat("yy/M/d",Locale.US).format(date);
		System.out.println(strDateDormat3);
		// ハイフンver.
		String strDateDormat4 = new SimpleDateFormat("yy-M-d",Locale.US).format(date);
		System.out.println(strDateDormat4);
	}
}
```
出力結果は、上から 2023/01/19、2023/1/19、23/1/19、23-1-19

### Calendarクラス
日付を参照したり計算することができる。
```java
package jp.co.study.sample;

import java.util.Calendar;

public class Qiita {
	public static void main (String args[]) {
		
		Calendar cal = Calendar.getInstance();
		System.out.println(cal.getTime());
	}
}
```
出力結果は、Thu Jan 19 19:35:02 JST 2023

下記のようにすると、フォーマットを指定できる。
```java
package jp.co.study.sample;

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Qiita {
	public static void main (String args[]) {
		
		Calendar cal = Calendar.getInstance();
		
		// フォーマットの設定
		SimpleDateFormat format1 = new SimpleDateFormat("yyyy/MM/dd");
		System.out.println(format1.format(cal.getTime()));
		// フォーマットの変更
		format1.applyPattern("y/M/d");
		System.out.println(format1.format(cal.getTime()));
		format1.applyPattern("yy/M/d");
		System.out.println(format1.format(cal.getTime()));
		format1.applyPattern("yy-M-d");
		System.out.println(format1.format(cal.getTime()));
	}
}
```
出力結果は、上から 2023/01/19、2023/1/19、23/1/19、23-1-19

年、月、日付を出力する方法。
```java
package jp.co.study.sample;

import java.util.Calendar;

public class Qiita {
	public static void main (String args[]) {
		
		Calendar cal = Calendar.getInstance();
		
		// 年、月、日付出力
		System.out.println(cal.get(Calendar.YEAR));
		System.out.println(cal.get(Calendar.MONTH) + 1);
		System.out.println(cal.get(Calendar.DATE));
	}
}
```
getの引数には定数（下記参照）を指定する。

https://docs.oracle.com/javase/jp/8/docs/api/java/util/Calendar.html

MONTHは定数が出力され、1月の場合は0が出力されるため +1。
出力結果は、上から 2023、1、19

## 2. 今日、明日、明後日、昨日、一昨日、来年、昨年の日付を取得する
### 今日、 明日、 明後日、 昨日、 一昨日
```java
package jp.co.study.sample;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class Qiita {
	public static void main (String args[]) {
		
		// 今日
		Date nowDate = new Date();
		String today = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(nowDate);
		System.out.println(today.toString());
		
		Calendar cal = Calendar.getInstance();
		
		// 明日
		cal.setTime(nowDate);
		cal.add(Calendar.DATE, 1);
		String tomorrow = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(tomorrow);
		
        // 明後日
		cal.setTime(nowDate);
		cal.add(Calendar.DATE, 2);
		String daTomorrow = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(daTomorrow);
		
        // 昨日
		cal.setTime(nowDate);
		cal.add(Calendar.DATE, -1);
		String yesterday = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(yesterday);
		
        // 一昨日
		cal.setTime(nowDate);
		cal.add(Calendar.DATE, -2);
		String dbYesterday = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(dbYesterday);
	}
}
```
出力結果は、上から 2023/01/19、2023/01/20、2023/01/21、2023/01/18、2023/01/17

### 来年、 昨年
```java
package jp.co.study.sample;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;

public class Qiita {
	public static void main (String args[]) {
		
		Date nowDate = new Date();
		Calendar cal = Calendar.getInstance();
		
		// 来年
		cal.setTime(nowDate);
		cal.add(Calendar.YEAR, 1);
		String nextYear = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(nextYear);
		// 昨年
		cal.setTime(nowDate);
		cal.add(Calendar.YEAR, -1);
		String lastYear = new SimpleDateFormat("yyyy/MM/dd",Locale.US).format(cal.getTime());
		System.out.println(lastYear);
	}
}
```
出力結果は、上から 2024/01/19、2022/01/19