Python
 Computer >> コンピューター >  >> プログラミング >> Python

2つのタイムスタンプの違いを見つけるPythonプログラム


この形式で「DayddMonyyyy hh:mm:ss +/- xxxx」が2回あるとします。ここで、Dayは3文字の日で、最初の文字は大文字です。月は3文字の月の名前であり、最後に+または-xxxxはタイムゾーンを表します。たとえば、+ 0530は、GMTより5時間30分長いことを示します(dd、hh、mm、ssなどの他の形式は自明です)。 2つのタイムスタンプの絶対差を秒単位で見つける必要があります。

Pythonを使用してこれを解決するには、日時ライブラリを使用します。 strptime()という関数があり、文字列形式の日付を日時オブジェクトに変換します。以下のようなフォーマット指定子はほとんどありません-

  • %aは、3文字の形式で日を示します
  • %dは日を数値形式で示します
  • %bは3文字形式の月を示します
  • %Yは年をyyyy形式で示します
  • %Hは、hh形式の時間を示します
  • %Mは分をmm形式で示します
  • %Sはss形式の秒を示します
  • %zは、タイムゾーンを+/-xxxx形式で示します

したがって、入力がt1 ="Thu 15 Jul 2021 15:10:17 +0530" t2 ="Thu 15 Jul 2021 20:25:29 +0720"の場合、出力は12312

になります。

これを解決するには、次の手順に従います-

  • t1:=初回の形式を指定された文字列から上記の形式に変更します
  • t2:=2回目の形式を指定された文字列から上記の形式に変更します
  • t1とt2の差を秒単位で返します

理解を深めるために、次の実装を見てみましょう-

from datetime import datetime

def solve(t1, t2):
   t1 = datetime.strptime(t1, "%a %d %b %Y %H:%M:%S %z")
   t2 = datetime.strptime(t2, "%a %d %b %Y %H:%M:%S %z")
   return abs(int((t1-t2).total_seconds()))

t1 = "Thu 15 Jul 2021 15:10:17 +0530"
t2 = "Thu 15 Jul 2021 20:25:29 +0720"
print(solve(t1, t2))

入力

"Thu 15 Jul 2021 15:10:17 +0530", "Thu 15 Jul 2021 20:25:29 +0720"

出力

12312

  1. いいえが2の累乗であるかどうかを調べるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 数nが与えられた場合、与えられた数が2の累乗であるかどうかを確認する必要があります。 アプローチ 入力数を2で割り続けます。つまり、=n/2を繰り返します。 各反復で、n%2がゼロ以外になり、nが1でない場合、nは2の累乗ではないことを確認します。 nが1になると、2の累乗になります。 以下の実装を見てみましょう- 例 def isPowerOfTwo(n):    if (n == 0):       retur

  2. リスト内のすべてのペア間の絶対差の合計を見つけるPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 リスト入力が与えられた場合、リスト内のすべてのペア間の絶対差の合計を見つける必要があります。 列挙() メソッドは、反復可能オブジェクトにカウンターを追加し、それを列挙オブジェクトタイプの形式で返します。 この方法では、絶対差を含むリスト「diffs」があります。 2つの変数が初期化された2つのループを使用します。 1つはカウンターを反復処理し、もう1つはリスト要素を反復処理します。すべての反復で、要素が類似しているかどうかを確認します。 そうでない場合は、絶対差を見つけて、それ