スクリプトのお勉強

Python3/ある日付から日付までの月/日/時間ごとの時刻を算出する

投稿日:

小ネタです。

要するに、時刻A と 時刻B を指定したときの、各時間間隔での時刻取得したかったです。

当初はdateutilを使う方法でなく、自前で実装しようと思ったのですが、面倒なことに気づきました。なのであきらめて、dateutilを使用しています。

なんとなくgoogle Colaboratoryで計算してみました

以下は、google Colaboratoryを使ってみました。GPU使えるそうですがあまり関係なく、サンプル用に使っています。

以下がdateutilの例です。

from dateutil.parser import parse
from dateutil.rrule import rrule, MONTHLY, DAILY , HOURLY

months = list(rrule(MONTHLY, dtstart=parse("20200101T000000"),
                                                           until=parse("20200902T000000")))
days = list(rrule(DAILY, dtstart=parse("20200101T000000"),
                                            until=parse("20200902T000000")))
hours = list(rrule(HOURLY, dtstart=parse("20200822T090000"),
                                                   until=parse("20200923T090000")))

print(months[0])
print(months[1])
print(months[-2])
print(months[-1])

print(days[0])
print(days[1])
print(days[-2])
print(days[-1])

print(hours[0])
print(hours[1])
print(hours[-2])
print(hours[-1])

結果は以下の通りです。

2020-01-01 00:00:00 # 月ごと
2020-02-01 00:00:00
2020-08-01 00:00:00
2020-09-01 00:00:00
2020-01-01 00:00:00 # 日ごと
2020-01-02 00:00:00
2020-09-01 00:00:00
2020-09-02 00:00:00
2020-08-22 09:00:00 # 時間ごと
2020-08-22 10:00:00
2020-09-23 08:00:00
2020-09-23 09:00:00

月ごとの最後をあえて9/2にしてみたのですが、戻ってくるのは、9/2ではなく、
9/1が戻ってきました。まぁそういうものということで。

-スクリプトのお勉強

執筆者:

関連記事

CSSで注釈を自動ナンバリングする

お仕事で、注釈をつける事がありました。 一瞬で回答できなかったので、ブログネタとして調べてみました。 注釈、とは この意味の注釈とは 「難しい単語]※1 ※1 こういう意味です で「※1」にリンクが張 …

Svelte(Carbon Components Svelte) + Python(FastAPI)でWebアプリを作る

Svelte用のサンプルとして、Carbon Components SvelteのTreeViewを試用してファイルツリーを表示し、各データはAPIとして読み出し、編集するWebアプリケーションを実装 …

「要件もデータも決まらない。でもDBが欲しい」を解決するWebアプリ「TinyGrid」を作った話

1. はじめに:現場の「とりあえずExcel」問題 新しい社内プロジェクトやインフラ基盤の刷新、新規事業のPoCなどを進めるとき、エンジニアなら誰もが一度は次のような状況に直面したことがあるはずです。 …

整形/文法チェック ツール インストールまとめ

1.はじめに 最近、仕事で複数スクリプトを組み合わせてコーディングすることが多くなりました。 それだと、各スクリプトの癖を忘れたり、そもそもどう書くのか忘れたりと、不良を作りこむ可能性が多くなります。 …

pysnmp v6 から v7 への移行

はじめに 前回の記事でPythonによるSNMPTrapの送信について記事を書きました。 その後、PythonからのSNMPTrap送信する方法を調査したら、方法が変わっていることに気づきしました。 …

    google オプトアウト Click here to opt-out.