みなさん、こんにちは!
この記事では、Pythonを使用してバスの発車時刻までの残り時間を瞬時に表示するアプリの作成方法を解説しています。
プログラミング初心者でも理解しやすいように、1つ1つのコードをステップバイステップで簡単に分かりやすく解説していますよ。
- Pythonのバージョンを確認する方法
- Pythonのインストール方法
- バスの発車時刻までの時間を表示するアプリの作り方
- バスの発車時刻を自分で設定・カスタマイズする方法
なぜこのようなアプリを作成するのか?
まず初めにこの記事の必要性について解説します。
バスの時刻表を確認したり次のバスが何時に来るのかを確認できるアプリは存在します。
ただ、「あとどれくらいの時間でバスが来るのか?」という疑問を解決するアプリは見たことがありませんよね。
次のバスの発車までの時間を確認するには、自分の頭の中で、時刻表から現在時刻を引き算しなければなりません。
すぐに計算できればいいのですが、時間がない時などに計算ミスなく暗算するのは難しいと思います。
そんな時に、一発で発車までの残り時間を計算するプログラミングがあれば便利だと思い、この記事で解説しています。
使用環境の確認
次に、この記事で使用している機材や環境の紹介をします。
・Mac Book Air のM2チップモデル(2022)
・Python 3.12.0
使用する機材や環境が違っていても、基本的な操作やプログラミングのコードは変更ありませんのでご安心ください。
Pythonのインストール
Pythonのバージョン確認
Pythonのバージョンを確認することは、プログラムの正確な動作を保つために重要です。
まず、利用しているPythonのバージョンを確認してみましょう。
Macの場合はターミナル、Windowsの場合はコマンドプロンプトで以下のコマンドを実行してください。
$ python --version
Pythonのインストール手順
1. 公式サイトへアクセス
Pythonの公式サイトにアクセスします。
2. 最新バージョンのダウンロード
ページ上部にある「Downloads」から最新でかつ安定したPythonバージョンを選択し、ダウンロードしましょう。
3. インストール
ダウンロードしたファイルを開いて、画面の指示に従ってPythonをインストールします。
インストール時に「Add Python to PATH」をチェックすることをお忘れなく。
4. バージョン確認
インストールが完了したら先ほど紹介したように、Pythonのバージョンが表示されることを確認します。
$ python --version
さて、Pythonのバージョン確認ができたら、バス発車時刻表示アプリを作成するためのステップに進みましょう。
アプリの作成方法
いよいよアプリの作成に取り掛かります。
初心者でも理解しやすいように、順を追って詳しく解説していきますよ。
1. プログラムの基本構造を作る
Pythonでは、時間を扱うために「datetime」モジュールを使用します。
最初に、現在時刻を取得する基本的なプログラムを作成しましょう。
datetime モジュールとは?
datetimeモジュールは、Pythonの標準ライブラリに含まれているモジュールであり、日付と時刻を扱うための機能を提供しています。
日付と時刻は、多くのアプリで重要な情報であり、それらを扱うためには正確な日時情報を取得し、操作できるようにする必要があります。
datetimeモジュールはこれらの操作を全般的にサポートできるんです。
import datetime
current_time = datetime.datetime.now()
print("現在時刻:", current_time)
このコードは、現在の日時を取得してコンソールに表示しています。
2. バスの発車時刻の設定
次に、バスの発車時刻を設定します。
例として、ここでは14時30分にバスが出発すると仮定します。
departure_time = datetime.datetime(current_time.year, current_time.month, current_time.day, 14, 30)
print("バスの発車時刻:", departure_time)
このコードは、Pythonのdatetimeモジュールを使用して、特定の日時を表すdatetimeオブジェクトを作成し、それを使ってバスの発車時刻を表示しています。
3. 残り時間の計算
現在時刻とバスの発車時刻から残り時間を計算します。これにはtimedeltaというモジュールを使用します。
time_until_departure = departure_time - current_time
print("バス発車までの残り時間:", time_until_departure)
timedelta モジュールとは?
timedeltaは、Pythonの標準ライブラリで提供されているdatetimeモジュールに含まれるクラスの一つです。
このクラスは主に、日付と時刻の差分や期間を表現するために使用されます。
主に、datetimeオブジェクトに対して時間の加算や減算を行う際に利用されます。
完成したプログラムの全体像
これらのコードを組み合わせて、最終的なプログラムを作成します。
import datetime
# 現在時刻を取得
current_time = datetime.datetime.now()
# バスの発車時刻を設定(例: 14時30分)
departure_time = datetime.datetime(current_time.year, current_time.month, current_time.day, 14, 30)
# 残り時間を計算
time_until_departure = departure_time - current_time
# 結果を表示
print("現在時刻:", current_time)
print("バスの発車時刻:", departure_time)
print("バス発車までの残り時間:", time_until_departure)
これでバスの発車時刻までの残り時間を瞬時に表示するアプリが完成しました!
お疲れ様でした。
時間がマイナスになってしまう場合
プログラムを実行した現在によって、バスの発車時刻までの残り時間がマイナスになってしまう場合があります。
これを修正するために、「# 結果を表示」の上に以下のプログラミングコードを追加してみましょう。
# 残り時間がマイナスの場合、次の日の同じ時間にバスが発車すると仮定して計算し直す
if time_until_departure.total_seconds() < 0:
next_day_departure_time = departure_time.replace(year=current_time.year, month=current_time.month, day=current_time.day + 1)
time_until_departure = next_day_departure_time - current_time
この修正により、残り時間がマイナスになった場合は、次の日の同じ時間にバスが発車すると仮定して計算し直します。
これにより、常に正確な残り時間が表示されるようになりました。
バスの発車時刻をカスタマイズする方法
今回はバスの発車時刻を14:30と設定しましたが、本物のバスの時刻表はもちろん違いますよね。
そこで、バスの発車時刻を自分で設定(カスタマイズ)する方法を解説します。
バスの発車時刻を複数設定 & 複数のバスの発車時刻をリストとして管理し、最も近い発車時刻を取得します。
その時刻と現在の時刻の差を求めて、出発までの残り時間を表示させます。
import datetime
# バスの発車時刻をリストとして設定
bus_departure_times = [
datetime.time(8, 30),
datetime.time(12, 45),
datetime.time(15, 15),
datetime.time(18, 0),
]
# 現在時刻を取得
current_time = datetime.datetime.now().time()
# 最も近い発車時刻を見つける
closest_departure_time = min(bus_departure_times, key=lambda time: datetime.datetime.combine(datetime.date.today(), time))
# 残り時間を計算
time_until_departure = datetime.datetime.combine(datetime.date.today(), closest_departure_time) - datetime.datetime.combine(datetime.date.today(), current_time)
# 残り時間がマイナスの場合、次の日の同じ時間に最も近いバスが発車すると仮定して計算し直す
if time_until_departure.total_seconds() < 0:
next_day_departure_time = closest_departure_time
time_until_departure = datetime.datetime.combine(datetime.date.today() + datetime.timedelta(days=1), next_day_departure_time) - datetime.datetime.combine(datetime.date.today(), current_time)
# 結果を表示
print("現在時刻:", current_time)
print("最も近いバスの発車時刻:", closest_departure_time)
print("次のバス発車までの残り時間:", time_until_departure)
このプログラムでは、bus_departure_timesリストにバスの発車時刻を追加することで、複数の時刻を管理しています。
最も近い発車時刻を求めるためにmin関数を使用し、残り時間の計算も変更しました。
必要に応じて発車時刻の追加や変更をしてくださいね。
例えば、 datetime.time(8, 30) は8時30分を表しているため、9時05分に変更したい場合は、datetime.time(9, 05) に変更してください。
いつでもすぐに実行できるようにする方法
いちいち今まで紹介したプログラミングコードを記述するのは面倒ですよね。
このプログラムを一瞬で実行するための方法を紹介します。
テキストエディタでファイルを保存
テキストエディタでコードをコピーして、新しいファイルにペーストします。
例えば、「bus_schedule.py」という名前のファイルで保存します。
ターミナルを開く
ターミナルまたはコマンドプロンプトを開いて、スクリプトが保存されたディレクトリに移動します。
実行
次に、以下のようにコマンドを入力して実行します。
python bus_schedule.py
これでスクリプトが実行され、結果がターミナルまたはコマンドプロンプトに表示されますよ。
ぜひ時間がない時に一瞬で実行したい場合に活用してみてくださいね。
まとめ
今回はPythonを使用して、バスの発車時刻までの残り時間を表示するアプリを作成しました。
基本的なプログラミングの構造やdatetimeモジュールの使用方法についても学べたかと思います。
このアプリをさらに拡張したり、GUIを追加するなど、様々なアイディアが浮かびますよね。
ぜひ自分なりのアプローチで試してみてください。
最後までご覧いただき、ありがとうございました。
次回もお楽しみに!