Pythonで次の月曜日の日付を簡単に取得する方法
Pythonの標準ライブラリである datetime モジュールと timedelta オブジェクトを組み合わせれば、次の月曜日の日付を簡単に計算できます。
考え方はシンプルで、以下の3ステップで求められます。
1. 今日の日付を取得する
2. 今週すでに経過した日数を引く(これで「今週の月曜日」の日付がわかる)
3. timedelta を使って1週間(7日)を足す
これにより、次の月曜日の日付が正確に算出されます。
サンプルコード
import datetime
today = datetime.date.today()
next_monday = today + datetime.timedelta(days=-today.weekday(), weeks=1)
print(next_monday)
実行結果
このコードを実行すると、以下のように次の月曜日の日付が出力されます。
2018-01-08
コードの解説
ポイントとなるのは today.weekday() の部分です。このメソッドは曜日を整数で返し、月曜日が0、日曜日が6となります。
例えば今日が木曜日(weekday() = 3)の場合、days=-3 を加算することで今週の月曜日に戻り、さらに weeks=1 で1週間先に進むため、結果として「次の月曜日」の日付が得られます。
この方法なら、今日が何曜日であっても、常に直近の次の月曜日を正しく取得できるのがメリットです。タスクの締め切り日やスケジュール管理など、週単位の処理が必要なプログラムで活用できます。
-
Pythonで0と9のみで構成されるnの最小倍数を見つけるプログラム
問題概要 整数 n が与えられたとき、「0」と「9」の2種類の数字だけで構成され、かつ n の倍数となる最小の正整数 x を求めることを考えます。 例えば、入力が n = 26 の場合、出力は 90090 となります。 解法のアプローチ この問題は、次の手順で解くことができます。 m を 9 に初期化する x を 1 に初期化する m が n で割り切れない間、以下を繰り返す x を 1 増やす x の2進数表現に含まれるすべての「1」を「9」に置き換えた数を m とする m を整数として返す この方法のポイントは、0と9のみで構成される数は、2進数の「0」と「1」で構成される数と同
-
PythonのBokehで画像を操作・表示する方法
Pythonの可視化ライブラリBokehで画像を扱うには、image_url()メソッドを使い、画像URLのリストを渡すのが基本です。このメソッドを使うことで、ローカルやWeb上にある画像をプロット領域内に簡単に配置できます。実装の手順output_file()でデフォルトの出力先を設定し、show()を呼び出したときに結果がHTMLファイルとして保存されるようにします。figure()でプロット用の新しいFigure(図)オブジェクトを作成します。image_url()メソッドで、指定したURLから読み込んだ画像を描画します。show()を呼び出して、Bokehオブジェクトやアプリケーション