【Pythonスクリプト改善】未来時刻計算ツールに曜日を追加して、もっと分かりやすく!strftimeフォーマット術 📅
こんにちは! Pythonプログラミング探検隊、隊長のPythonistaです! 先日公開した「Pythonで作る未来時刻計算ツール」の記事は、お楽しみいただけましたでしょうか? 様々な形式の時間を入力して未来の時刻を計算できる、便利なツールが作れましたね。
さて、実際にツールを使ってみると、こんな風に思いませんでしたか?
未来の時刻: 2025-07-28 15:40:30
「日付は分かるけど、これって何曜日だっけ…?」
そうなんです。曜日が分からないと、意外と不便ですよね。そこで今回は、このスクリプトに簡単な改良を加えて、日付と一緒に曜日も表示できるようにパワーアップさせます! この改善を通して、Pythonのdatetime
オブジェクトを、思い通りの書式で文字列に変換するstrftime
メソッドの強力な使い方をさらに深掘りしていきましょう。
1. 改善のポイント:strftime()
メソッドと書式化コード
前回のスクリプトで、日時を人間が読みやすい文字列に変換するために、私たちはstrftime()
メソッドを使いました。
# 以前のコード
now = datetime.now()
print(f"現在時刻 : {now.strftime('%Y-%m-%d %H:%M:%S')}")
この'%Y-%m-%d %H:%M:%S'
という部分が、「どのような書式で表示するか」を指定する**書式化文字列**です。%Y
が4桁の年に、%m
が2桁の月に置き換えられる、といったルールがありましたね。
そして、この書式化コードには、もちろん曜日を表示するためのコードも用意されています!
2. 曜日を追加する「魔法のコード」:%a
と %A
曜日を表示するには、主に以下の2つの書式化コードを使います。
%a
: 曜日の**短縮形**(英語ならMon
,Tue
...、日本語環境なら月
,火
...)に置き換えられます。%A
: 曜日の**完全な形**(英語ならMonday
,Tuesday
...、日本語環境なら月曜日
,火曜日
...)に置き換えられます。
今回は、表示がコンパクトな%a
を使って、(月)
のように曜日を括弧で囲んで表示してみましょう。やり方は非常に簡単で、元の書式化文字列に(%a)
を追加するだけです。
変更前:
now.strftime('%Y-%m-%d %H:%M:%S')
変更後:
now.strftime('%Y-%m-%d (%a) %H:%M:%S') # (%a) を追加!
たったこれだけです!これで、日付の隣に曜日が表示されるようになります。
ちなみに、他にも便利な日付・時刻関連の書式化コードがたくさんあります。
コード | 意味 | 表示例 |
---|---|---|
%Y |
西暦(4桁) | 2025 |
%y |
西暦(下2桁) | 25 |
%m |
月(01-12) | 06 |
%B |
月のフルネーム(英語) | June |
%b |
月の短縮形(英語) | Jun |
%d |
日(01-31) | 08 |
%A |
曜日のフルネーム(英語) | Sunday |
%a |
曜日の短縮形(英語) | Sun |
%H |
時(24時間表記, 00-23) | 21 |
%I |
時(12時間表記, 01-12) | 09 |
%p |
午前/午後 (AM/PM) | PM |
%M |
分(00-59) | 05 |
%S |
秒(00-59) | 30 |
3. スクリプトの更新版(完成コード)
4. 実行結果の比較
この改良版スクリプトを実行すると、出力が格段に分かりやすくなります。
改善前:
現在時刻 : 2025-06-23 11:00:00
経過時間 : 1 day, 12:00:00
未来の時刻: 2025-06-24 23:00:00
改善後:
現在時刻 : 2025-06-23 (Mon) 11:00:00
経過時間 : 1 day, 12:00:00
未来の時刻: 2025-06-24 (Tue) 23:00:00
一目で曜日がわかるようになり、ぐっと実用的になりましたね!
まとめ:小さな改善が、使いやすさを大きく変える
今回は、既存のスクリプトにほんの少し手を加えて、曜日表示機能を追加しました。
strftime()
メソッドの書式化文字列に%a
(曜日の短縮形)を追加するだけ、という簡単な変更でした。%A
(フルネーム)や%B
(月の名前)など、他の書式化コードを使えば、さらに表示をカスタマイズできることも学びました。
プログラミングでは、このように小さな改善を積み重ねていくことで、プログラムの使いやすさ(ユーザビリティ)を大きく向上させることができます。「もっとこうだったら便利なのに」と感じたら、ぜひ今回のように改善に挑戦してみてください。その試行錯誤が、あなたのスキルをさらに高めてくれるはずです!
コメント
コメントを投稿