Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

日付(Date)

プログラミングで「日付(ひづけ)」や「時間(じかん)」をあつかうときは、Dateオブジェクト を使います。

留学生の方には、Dateオブジェクトは 「世界中どこでも使える、魔法まほうの時計(とけい)」 だと教えてあげてください。


I. Dateオブジェクト

1. Dateオブジェクトの作り方

JavaScriptで時計を動かすには、まず new Date() と書きます。

new を使うことで、メモリの中に新しい「日付というデータの箱」を作り、その場所を指し示すようになります。

// 今(現在)の日付と時間を手に入れる
const now = new Date();
console.log(now); 
// 結果例(れい):Fri Feb 20 2026 16:40:00 ...(実行した時の時間が出ます)

また、**「特定の日(過去や未来)」**の時計を作ることもできます。

// 2026年1月1日の時計を作る
const newYear = new Date("2026-01-01");

// 2026年4月1日0時0分0秒の時計を作る(年, 月, 日, 時, 分, 秒)
const aprilFool = new Date(2026, 3, 1, 0, 0, 0);

「プリミティブ型」と「オブジェクト型」の違い

ここで「プリミティブ型」と「オブジェクト型」の違いを理解しましょう。

  • プリミティブ型(数値すうちや文字列): データそのものが変数へんすうに入っています。
  • オブジェクト型(Dateなど): データそのものではなく、データが保存されているメモリ上の「場所(参照:さんしょう)」が変数へんすうに入っています。

So What?(なぜ大切なの?) これらのみオブジェクトを使いこなすことは、プログラミングの世界で「車輪の再発明(しゃりんのさいはつめい:すでにあるものを一から作る無駄なこと)」を防ぐことになります。用意された道具を使うことで、開発かいはつスピードを劇的に速めることができます。

2. よく使うメソッド(情報の取り出し方)

作った時計から、「年」「月」「日」をバラバラに取り出すことができます。

知りたいことメソッド名注意点(ここがむずかしい!)
getFullYear()getYear ではなく Full をつけます。
getMonth()0から始まります(0=1月, 1=2月…) ⚠️
getDate()getDay ではないので注意!
曜日getDay()0(日) 〜 6(土) の数字で返ってきます。
時間getHours()0 〜 23時。

3. 初心者しょしんしゃが絶対(ぜったい)に間違えるポイント

Dateオブジェクトには、初心者しょしんしゃ泣かせの「ひっかけ問題」が2つあります。ここを優しく教えてあげましょう。

① 月(Month)は 0 から数える

配列はいれつと同じで、**1月は 0** です。

  • 1月 → 0
  • 12月 → 11

Tip

解決策: 画面がめん表示ひょうじするときは、いつも getMonth() + 1 と書こうね!と教えてあげてください。

② 「日」と「曜日」の名前

  • getDate() : 1日、2日…という 「日付」
  • getDay() : 月、火…という 「曜日」

4. かっこいい日付の表示ひょうじかた(日本でのマナー)

日本でよく使う「2026年2月20日」という形式にするコードれいです。

const today = new Date();

const year = today.getFullYear();
const month = today.getMonth() + 1; // 1を足すのを忘れないで!
const date = today.getDate();

console.log(`${year}年${month}月${date}日`); 
// 結果:2026年2月20日

まとめ

留学生へのアドバイス:

  1. new Date() は「今の時計」を作る合言葉!
  2. 月(Month) を使うときは、いつも心に 「+1」 を!
  3. 曜日(Day) は数字で返ってくるから、日本語(月火水…)に直すときは配列はいれつを使うと便利だよ!

いかがでしょうか?「月が0から始まる」というルールさえクリアすれば、Dateオブジェクトはとても頼りになる道具になります。


II. 日付の計算

日付(ひづけ)の計算けいさんは、プログラミングでとてもよく使います。 たとえば、「今日から3日後はいつ?」「テストまであと何日?」という計算です。

「Dateオブジェクトは、数字を書きかえるだけで自動でカレンダーをめくってくれる、かしこい時計(とけい)」 です。


1. 基本(きほん)のやりかた:set メソッドを使う

日付を計算するときは、まず今の情報を「ゲット(get)」して、計算したあとに「セット(set)」しなおします。

れい:今日から「5日後」を計算する

const today = new Date(); // ① 今日の時計を作る

// ② 今の「日(Date)」をゲットして、5を足す
const futureDate = today.getDate() + 5;

// ③ 新しい数字をセットする
today.setDate(futureDate);

console.log(today.toLocaleDateString()); // 5日後の日付が出ます

2. ここがすごい!「繰り上がり(くりあがり)」の自動計算

留学生が一番感動(かんどう)するのは、JavaScriptが**「月末(げつまつ)」を勝手に計算してくれる**ところです。

たとえば、**「1月31日の1日後」**を計算するとします。 普通なら「次は2月1日だ」と自分で考える必要がありますが、JavaScriptはこうなります:

const endOfMonth = new Date("2026-01-31");

endOfMonth.setDate(endOfMonth.getDate() + 1);

console.log(endOfMonth.toLocaleDateString()); // 自動で「2026/2/1」になる!

  • 32日になっても大丈夫: setDate(32) とすると、次の月の1日に自動で進みます。
  • 13月になっても大丈夫: setMonth(12)(13番目の月)とすると、次の年の1月に進みます。

3. 「あと何日?」の計算(ミリ秒のひき算)

「今日からイベントまであと何日?」を計算するときは、少し特殊な方法を使います。 日付を 「ミリ秒(とても小さな数字)」 に直してざんをします。

const today = new Date();
const eventDay = new Date("2026-03-01");

// ① 引(ひ)き算(ざん)をして「ミリ秒」の差(さ)をだす
const diffMs = eventDay - today;

// ② ミリ秒を「日」に変換(へんかん)(へんかん)する
// 1日 = 24時間 × 60分 × 60秒 × 1000ミリ秒
const diffDays = Math.ceil(diffMs / (24 * 60 * 60 * 1000));

console.log(`イベントまであと ${diffDays} 日です!`);

Note

Math.ceil(マスシール)とは? 小数点(しょうすうてん)をげる魔法まほうです。残り時間が「1.2日」だったら「あと2日」と表示ひょうじするために使います。Mathオブジェクト(数学の道具)についてはあとの章で説明します。


まとめ:留学生へのアドバイス

日付の計算を教えるときの合言葉はこれです!

  1. 「今の数字をゲットして、足して、セットする!」
  2. 「カレンダーの終わり(2月が28日か29日か、など)は、JavaScriptが全部やってくれるから任せてOK!」
やりたいこと使うメソッド
を進めるgetDate() + setDate()
を進めるgetMonth() + setMonth()
を進めるgetFullYear() + setFullYear()

いかがでしょうか?「自分でカレンダーをめくらなくていい」というメリットが伝われば、日付の計算が楽しくなりますよ。

So What?(なぜ大切なの?) これらのみオブジェクトを使いこなすことは、プログラミングの世界で「車輪の再発明(しゃりんのさいはつめい:すでにあるものを一から作る無駄なこと)」を防ぐことになります。用意された道具を使うことで、開発かいはつスピードを劇的に速めることができます。