月末の最後の曜日(月〜日)の最終日付を計算
年・月・曜日を選ぶと、その月で最後に来るその曜日の日付が分かります。2026年7月の最後の金曜日は2026年7月31日です。うるう年の2月にも対応し、手順も確認できます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 年
- 2,026
- 月
- 7
- 対象の曜日:英語名
- Friday
- 日付
- 2026-07-31
- 日
- 31
- 月名
- July
- 曜日名
- Friday
月末の最後の曜日を計算するツールは、計画で頻繁に聞かれる問いに答えます。7月の最後の金曜日、2月の最後の月曜日、12月の最後の日曜日はいつでしょうか。グレゴリオ暦の年、1から12までの月、そして英語名または1から7までのISO番号で曜日を入力すると、このツールはその最後の該当日の正確な暦日に加え、曜日ラベル、ISO曜日番号、その月の日数、確認可能な短い手順リストを返します。給与の締め日、定期的な取締役会、月末リリース、教室での暦の練習、スケジューラ用のテストフィクスチャは、いずれも表計算を開かずに同じ決定的な月末曜日の日付を必要とします。
グレゴリオ暦における「月末の最後の曜日」の意味
すべての暦月には最終暦日(28日、29日、30日、または31日)があり、月によって、そして2月についてはその年がグレゴリオ暦の閏年かどうかによって決まります。その月の最後の月曜日、火曜日、金曜日とは、指定した曜日に一致する月内で最も大きい日付番号にすぎません。最終暦日がすでに目的の曜日に当たっていれば、その日が答えです。
そうでなければ、名前が一致するまで最大6日さかのぼります。閏年が関係するのは2月だけです。4で割り切れる年は閏年ですが、400で割り切れない世紀年は除かれます。
そのため2月は29日になり得て、最後の曜日が29日に来ることがあります。応答の曜日番号は多くの業務システムで使われるISO規約に従い、月曜が1、火曜が2、日曜が7です。日曜を0とするライブラリとは異なるため、必要な呼び出し側のために日曜起点のインデックスも応答に含まれます。
実践的なヒント、制限、関連する検索
人がフォームに入力する場合は英語の完全な曜日名を、別のシステムがすでに月曜始まりの週インデックスを保持している場合は1から7のISO番号を使うのがおすすめです。month は必ず1から12の数値で送ってください。一部のプログラミング言語の0起点の月は拒否されます。
これは意図的で、静かな1ずれバグが誤った月末日を出さないようにするためです。往復チェックは簡単です。返されたISO日付を曜日計算ツールに通し、曜日名が一致し、同じ月内の後の日にその名前がないことを確認します。
年の上限は9999で、この製品面で4桁のISO文字列を明確に保ちます。このランディングは、月末の最後の曜日、月の最後の金曜日、最後の月曜日の日付をオンラインで探す人向けです。最初の曜日ファインダーでも営業日カウンターでも、完全な日付差・年齢ツールでもありません。
年・月・曜日が分かっていて最後の該当日だけが必要なときにこの機能を使い、完全なISO日付があり曜日名だけが必要な場合は曜日計算ツールを使ってください。
活用例
月末の会議・給与締め日の決定
運用チームは「月の最後の金曜日」や「3月の最後の月曜日」を、カレンダーや締め処理、リマインダージョブ用の具体的なISO日付に変換します。
スケジューラとUIのフィクスチャ生成
エンジニアは、ホストの時計やタイムゾーンに依存せず、単体テスト用の決定的な月末曜日フィクスチャを作成します。
教室での暦の演習
学生は、手書きの最終曜日の答えを、閏年の2月のエッジケースを含む固定のグレゴリオ暦の結果と照合します。
よくある質問
「月末の最後の曜日」とは何ですか?
その月で、指定した曜日に当たる最も遅い暦日のことです。たとえば7月の最後の金曜日は、月をまたがずに7月末に最も近い金曜日です。
曜日はどの形式が使えますか?
英語名(Monday…Sunday または Mon…Sun)とISO番号1〜7(月曜=1 … 日曜=7)です。
2月は閏年に対応していますか?
はい。 グレゴリオ暦の閏年ルールが適用されるため、2月は29日になり得て、最後の曜日が29日に来るのは閏年だけです。
月末の最終営業日と同じですか?
いいえ。指定した曜日に当たる、その月で最後の日付を求めます。銀行の休日を飛ばしたり、地域ごとの最終営業日の決まりを当てはめたりはしないため、それらは別に確認します。
月の最終日から最大で何日さかのぼりますか?
最大で6日です。月の最終日が指定した曜日ならその日が答えで、そうでなければ曜日が一致するまで1日ずつさかのぼります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/date/last-weekday-of-month \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"year":2026,"month":7,"weekday":"Friday"}'const res = await fetch("https://api.kit.forhosting.com/date/last-weekday-of-month", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"year": 2026,
"month": 7,
"weekday": "Friday"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/date/last-weekday-of-month",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"year": 2026,
"month": 7,
"weekday": "Friday"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/date/last-weekday-of-month", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"year":2026,"month":7,"weekday":"Friday"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"year":2026,"month":7,"weekday":"Friday"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/date/last-weekday-of-month", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"year": 2026,
"month": 7,
"weekday": "Friday"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "date.last_weekday_of_month",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
year_min | 1 |
year_max | 9999 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
1〜12の範囲外のあり得ない月、不明な曜日トークン、範囲外の年は、黙って誤った日を返すのではなく、明確な invalid_input エラーで拒否されます。計算は純粋なグレゴリオ暦の整数演算であり、ネットワークも乱数シードもホストの Date やタイムゾーンも使わないため、無料のブラウザランナーとプリペイド API は毎回同じ JSON を返します。
グレゴリオ暦における「月末の最後の曜日」の意味
計算はホストの時計を参照しないため、2026年7月のリクエストは、東京、ニューヨーク、エッジの Worker のどこで実行しても常に同じ最後の金曜日を返します。この機能は1か月と1つの曜日名に関するものであり、営業日カレンダー、銀行休日、地域ルールで週末を飛ばす「最終営業日」ポリシーに関するものではありません。
API の呼び出し方と返ってくる内容
必須フィールド3つを含む JSON ボディを送信します。year は1から9999までの整数、month は1から12までの整数、weekday は Friday や Fri のような英語の長い名前または短い名前、あるいは月曜が1で日曜が7の1から7までのISO曜日番号です。便宜上のエイリアスとして、year に y、month に m、weekday に day、dow、day_of_week があります。成功時、応答は date に正規のISO暦日文字列を設定し、year、month、day を数値でエコーし、month_name と day_name に英語ラベル、day_name_short に3文字形、iso_weekday と day_of_week に同じISO整数、weekday_0_sunday に0から6のインデックス、days_in_month にその月の日数、leap_year に年の真偽値を設定し、さらに短いメッセージと、閏年判定・最終暦日の曜日・オフセット・最終日付を再掲する順序付きの steps 配列を含みます。フィールド欠落、年や月が整数でない、月が1〜12の範囲外、曜日トークンが認識できない、年が公開範囲外といった検証失敗は invalid_input を返し、課金されません。料金は成功リクエストごとに $0.002 の一律で、単位は item、限界単価はゼロです。
実践的なヒント、制限、関連する検索
教育やテストでは、金曜日を目標にした7月のような長い月、29日に来得る曜日を持つ閏年の2月、30日の短い月、そして invalid_input の厳格な経路を示すための意図的な13月の失敗という、小さな既知のセットを用意してください。invalid_input を返す失敗タスクはプリペイド残高を消費しないため、呼び出し側が意図的に範囲外の月を送る探索的スクリプトも安価に保てます。
技術的な質問
month が1〜12の範囲外だとどうなりますか?
リクエストは invalid_input で拒否されます。1(1月)から12(12月)までの月のみ受け付けます。
月末の最後の曜日の計算ツールは無料ですか?
ブラウザのツールは無料でローカル実行されます。API 呼び出しは成功リクエストごとに $0.002 のプリペイド KIT 残高を使用し、失敗タスクは課金されません。