スクリプトのお勉強

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が戻ってきました。まぁそういうものということで。

-スクリプトのお勉強

執筆者:

関連記事

SPAMチェック for OCN の開発

前回、Thunderbirdプラグインの概要を書いたので、今回は開発したプラグインについて書きます。 SPAMチェック for OCNとは 以下の機能を持ったThunderbirdのアドオン(プラグイ …

Webフレームワーク「Django 3.2」を使ってみる

LTSリリースなので、現状でアップデートしてないDjangoプロジェクトをDjango 3.2にしていこうかと思いました。例として、自分のDjango 2.0のプロジェクトをDjango 3.2にしま …

Nuxt.js + Element + Responderでのtableサンプル作成

1. はじめに 最近、Webアプリケーションを作成する仕事が、少しずつですがあります。その際に使用するのは、殆どの場合「テーブル」です。 素のtableタグを駆使して作成した場合、テーブル内のセルにも …

Python3 – django-webtest

忙しいので断片だけ。。 DjangoでWebブラウザからアクセスする感じでテストする、やり方の一つです。以前にやったように、 Seleniumからやってもいいのすが、そこまでじゃない場合の単体テスト方 …

Ruby(Rails)で最小限にREST APIを立ち上げる

簡単にREST APIを立ち上げたいなーと思うときが仕事であります。別にRubyでなくてもいいのですが、一応前提がRubyであることにします。 仕事で必要になるには 現在の仕事を鑑みると、最低限以下の …

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