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

Pythonで時間を追加する


接尾辞amまたはpmが付いた12時間制の時刻を表す文字列があり、整数nも指定されている場合、時刻にn分を追加し、同じ形式で新しい時刻を返します。

したがって、入力がs ="8:20 pm"、n =150の場合、出力は10:50pmになります

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

  • h、m:=sから時間と分の部分を取ります

  • h:=h mod 12

  • 時間sが「午後」の場合

    • h:=h + 12

  • t:=h * 60 + m + n

  • h:=t / 60の商、m:=t/60の余り

  • h:=h mod 24

  • 接尾辞:='am'(h <12の場合)それ以外の場合' pm'

  • h:=h mod 12

  • hが0と同じ場合、

    • h:=12

  • 時間h:mサフィックスを返す

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

class Solution:
   def solve(self, s, n):
      h, m = map(int, s[:-2].split(':'))
      h %= 12
      if s[-2:] == 'pm':
         h += 12
      t = h * 60 + m + n
      h, m = divmod(t, 60)
      h %= 24
      suffix = 'a' if h < 12 else 'p'
      h %= 12
      if h == 0:
         h = 12
      return "{:02d}:{:02d}{}m".format(h, m, suffix)
ob = Solution()
print(ob.solve("8:20pm", 150))

入力

"8:20pm", 150

出力

10:50pm

  1. Pythonで時系列をプロットする方法は?

    matplotlibを使用してPythonで時系列をプロットするには、次の手順を実行できます- numpyを使用してxポイントとyポイントを作成します。 plot()を使用して、作成されたxポイントとyポイントをプロットします。 メソッド。 図を表示するには、 show()を使用します メソッド。 例 import matplotlib.pyplot as plt import datetime import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams[

  2. Pythonでのベクトル化

    この記事では、Python3.xを使用した実装に関連するベクトル化とさまざまな手法について学習します。またはそれ以前。 ベクトル化とは何ですか? ベクトル化は、ループを使用せずに配列を実装する手法です。代わりに関数を使用すると、コードの実行時間と実行時間を効率的に最小化するのに役立ちます。さまざまな演算が、ベクトルの内積などの配列ではなく、ベクトルに対して実行されています。これは、単一の出力を生成するため、スカラー積とも呼ばれます。外部積は、ベクトルの(長さXの長さ)に等しい次元の二乗行列になります。要素同じインデックスの要素と行列の次元を積む賢明な乗算は変更されません。 内積/内積