このプログラムでは、指定した日付がISO 8601規格に基づく週番号で何週目かを取得します。ISO週番号は月曜日を週の始まりとし、年の最初の木曜日を含む週を第1週目とします。
INDEX
使用するメソッド: getDay(), setDate(), setHours()
getDay()
メソッドは、指定した日付が週の何曜日にあたるかを返します。setDate()
とsetHours()
メソッドは、日付と時間を設定するために使用されます。
日付のISO週番号を取得するプログラム
以下のコードでは、今日の日付に基づいてISO 8601週番号を取得しています。
HTMLとJavaScriptコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>日付のISO週番号を取得する方法</title>
<style>
body {
font-family: Arial, sans-serif;
line-height: 1.6;
padding: 20px;
}
pre {
background: #f4f4f4;
border-left: 3px solid #ccc;
padding: 10px;
margin: 20px 0;
}
</style>
<script>
window.onload = function() {
// ISO週番号を計算する関数
function getISOWeekNumber(date) {
const targetDate = new Date(date.getTime());
targetDate.setHours(0, 0, 0, 0);
targetDate.setDate(targetDate.getDate() + 4 - (targetDate.getDay() || 7));
const firstDayOfYear = new Date(targetDate.getFullYear(), 0, 1);
const weekNumber = Math.ceil(((targetDate - firstDayOfYear) / 86400000 + 1) / 7);
return weekNumber;
}
// 今日の日付で週番号を取得
const today = new Date();
const weekNumber = getISOWeekNumber(today);
// 結果をHTMLに表示
document.getElementById('weekNumber').textContent = `ISO週番号: ${weekNumber}週目`;
}
</script>
</head>
<body>
<h1>日付のISO週番号を取得する方法</h1>
<div id="weekNumber"></div>
</body>
</html>
プログラムの解説
このプログラムでは、Date
オブジェクトを使い、特定の日付がISO週番号の何週目にあたるかを計算します。週の始まりを月曜日とし、年の最初の木曜日を含む週が第1週目となります。
Dateオブジェクトのメソッド一覧(抜粋)
メソッド名 | 説明 |
---|---|
getDay() |
指定された日付が週の何曜日かを取得します。0は日曜日、6は土曜日です。 |
setDate() |
指定された日付に新しい日付を設定します。 |
setHours() |
日付の時間、分、秒、ミリ秒を設定します。 |
getFullYear() |
指定された日付の4桁の年を返します。 |
getTime() |
指定された日付のミリ秒タイムスタンプを返します。 |