Pythonで時間を時、分、秒に変換する

このチュートリアルでは、時間についてお話しします。心配しないでください、これはつまらない歴史のチュートリアルではありません。むしろ、秒単位の時間を時間、分、秒に変換するさまざまな方法を見ていきます。

今後、時間の表現には、優先された形式である「時、分、秒」という表記方法を使用します。

それは見た目が〜

2:46:40

今取り組んでいる問題について、少し時間をかけて考えましょう。間違いなくPythonには私たちのために変換を行う素晴らしいモジュールがあります。しかし、組み込みのモジュールに移る前に、自分たちでプログラムを書いてみましょう。

時間を時、分、秒に変換するカスタム関数の作成

自分自身の変換関数を書くためには、まず数学的な問題について考える必要があります。

秒を希望するフォーマットに変換する方法はありますか? (Bō o kibō suru fōmāto ni henkan suru hōhō wa arimasu ka?)

時間、分、秒の値を取得する必要があります。

日本語で完全なエンディングを1つだけ用意するよ:
1日の総秒数を超えないものと仮定します。もし超えた場合は、1日の総秒数で割り、余りを取得します。

これは数学的に表されます。

seconds = seconds % (24 * 3600)

%演算子は余りを返します。

1日は24時間あり、1時間は3600秒(60秒 × 60分)なので、24時間 × 3600秒は86400です。

この後、秒数から時間の値を計算して進めることができます。

1. 時間の値を取得してください。(Jikan no atai o shutoku shite kudasai.)

秒から時間の値を取得するために、床除算演算子(//)を使用します。

商の整数部分を返します。

時間の数が必要なので、合計秒数(n)を1時間の合計秒数(3600)で割ります。

数学的には、これは次のように表されます。

hour = seconds // 3600

これから、分を計算する必要があります。 (Korekara, bun o keisan suru hitsuyou ga arimasu.)

2. 分の値を取得する

分の価値を計算するには、まず総秒数を3600で割り、余りを取る必要があります。

数学的には、これは次のように表されます:

 seconds = seconds % 3600

上記の結果から分の値を計算するために、再び床関数を使います。

minutes = seconds // 60

1分は60秒ですので、秒の値を60で割ります。

分単位を計算した後、好みの形式で秒の値を計算することができます。

3.秒の値を取得する

秒の値を取得するためには、トータルの秒数を1分の秒数(60)で割り、余りを取得する必要があります。

数学的には、次のように行われます。

 seconds = seconds % 60

私たちが求めている好ましい形式の2番目の値をこれによって得ることができます。

4. コードを完全にする

以上の知識をPythonの関数にまとめましょう。

def convert_to_preferred_format(sec):
   sec = sec % (24 * 3600)
   hour = sec // 3600
   sec %= 3600
   min = sec // 60
   sec %= 60
   print("seconds value in hours:",hour)
   print("seconds value in minutes:",min)
   return "%02d:%02d:%02d" % (hour, min, sec) 

n = 10000
print("Time in preferred format :-",convert(n))

出力:

seconds value in hours: 2
seconds value in minutes: 46
Time in preferred format :- 02:46:40

Timeモジュールを使用する。

では、1行のコードで秒を好みの形式に変換するための組み込みモジュールを見てみましょう。

タイムモジュールは、Unixシステム(システムに依存)において、1970年1月1日00:00:00(UTC)をエポックと定義しています。エポックとは、コンピューターにおける時間の開始点のことです。つまり、日付0と考えることができます。タイムモジュールを使用して秒数を変換する際には、このエポックが参照点として使用されます。

以下のコードを使用して、システムでエポックを出力します。

time.gmtime(0)
Time Epoch

秒を好みのフォーマットに変換するには、以下のコードを使用してください。

time.strftime("%H:%M:%S", time.gmtime(n))

この行は、秒単位の時間(n)を受け取り、それを別々に時、分、秒の値として出力できます。

以下に完全なPythonコードを示します。

import time
n=10000
time_format = time.strftime("%H:%M:%S", time.gmtime(n))
print("Time in preferred format :-",time_format)

出力:

Time in preferred format :- 02:46:40

時間モジュールでは、日、月、年など、追加の情報を表示するオプションも提供しています。

%a display abbreviated weekday name.
%A display full weekday name.
%b display abbreviated month name.
%B display full month name.
%c display the appropriate date and time representation.
%d display day of the month as a decimal number [01,31].

%aと%bを使用してみましょう。

import time
n=100000000000
time_format = time.strftime("Day: %a, Time: %H:%M:%S, Month: %b", time.gmtime(n))
print("Time in preferred format :-",time_format)

出力:

Time in preferred format :- Day: Wed, Time: 09:46:40, Month: Nov

Datetimeモジュールを使用する

お好みの形式に秒数を変換するために、DateTimeモジュールのtimedeltaメソッドも使用できます。

エポックから経過した日数、時間、分、秒として時間を表示します。

以下は、秒数を優先される形式に変換するためのPythonのコードです。Datetimeモジュールを使用します。

import datetime
n= 10000000
time_format = str(datetime.timedelta(seconds = n))
print("Time in preferred format :-",time_format)

出力する:

Time in preferred format :- 115 days, 17:46:40

結論

このチュートリアルでは、秒を時間、分、秒に変換するために使用できる3つの異なる方法について説明しました。大まかには、この問題に取り組むための2つの異なる方法があります。

自分で関数を書くか、組み込みモジュールを利用することができます。私たちはまず独自の関数を作成し、その後、timeモジュールとDateTimeモジュールを見てみました。

コメントを残す 0

Your email address will not be published. Required fields are marked *