質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • Python

    9289questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • DateTime

    57questions

    多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

datetimeを用いて「年月日時間」のリストを作る

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 365

loreeeee

score 16

python datetimeモジュールを使って最初と最後の日を

start_day = 2018020100 # (%Y:2018, %m:02 %d:02 %H:00)
end_day = 2018020723

のように指定することでdate_listに

date_list = [2018020100, 2018020101, 2018020102, ... , 2018020720, 2018020721, 2018020722, 2018020723]

のように1時間おきの日付リストを作成したいのですが,どのようにすればいいでしょうか?

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 4

checkベストアンサー

+2

普通にループさせる。

import datetime

# intは面倒だからとりあえず文字列にしとく
start = str(2018020100)
end = str(2018020723)

start_dt = datetime.datetime.strptime(start, "%Y%m%d%H")
end_dt = datetime.datetime.strptime(end, "%Y%m%d%H")

lst = []
t = start_dt
while t <= end_dt:
    lst.append(t)
    t += datetime.timedelta(hours=1)

print([int(x.strftime("%Y%m%d%H")) for x in lst])
""" =>
[2018020100, 2018020101, 2018020102, 2018020103, 2018020104, 2018020105, 2018020106, 2018020107, 2018020108, 2018020109, 2018020110, 2018020111, 2018020112, 2018020113, 2018020114, 2018020115, 2018020116, 2018020117, 2018020118, 2018020119, 2018020120, 2018020121, 2018020122, 2018020123, 2018020200, 2018020201, 2018020202, 2018020203, 2018020204, 2018020205, 2018020206, 2018020207, 2018020208, 2018020209, 2018020210, 2018020211, 2018020212, 2018020213, 2018020214, 2018020215, 2018020216, 2018020217, 2018020218, 2018020219, 2018020220, 2018020221, 2018020222, 2018020223, 2018020300, 2018020301, 2018020302, 2018020303, 2018020304, 2018020305, 2018020306, 2018020307, 2018020308, 2018020309, 2018020310, 2018020311, 2018020312, 2018020313, 2018020314, 2018020315, 2018020316, 2018020317, 2018020318, 2018020319, 2018020320, 2018020321, 2018020322, 2018020323, 2018020400, 2018020401, 2018020402, 2018020403, 2018020404, 2018020405, 2018020406, 2018020407, 2018020408, 2018020409, 2018020410, 2018020411, 2018020412, 2018020413, 2018020414, 2018020415, 2018020416, 2018020417, 2018020418, 2018020419, 2018020420, 2018020421, 2018020422, 2018020423, 2018020500, 2018020501, 2018020502, 2018020503, 2018020504, 2018020505, 2018020506, 2018020507, 2018020508, 2018020509, 2018020510, 2018020511, 2018020512, 2018020513, 2018020514, 2018020515, 2018020516, 2018020517, 2018020518, 2018020519, 2018020520, 2018020521, 2018020522, 2018020523, 2018020600, 2018020601, 2018020602, 2018020603, 2018020604, 2018020605, 2018020606, 2018020607, 2018020608, 2018020609, 2018020610, 2018020611, 2018020612, 2018020613, 2018020614, 2018020615, 2018020616, 2018020617, 2018020618, 2018020619, 2018020620, 2018020621, 2018020622, 2018020623, 2018020700, 2018020701, 2018020702, 2018020703, 2018020704, 2018020705, 2018020706, 2018020707, 2018020708, 2018020709, 2018020710, 2018020711, 2018020712, 2018020713, 2018020714, 2018020715, 2018020716, 2018020717, 2018020718, 2018020719, 2018020720, 2018020721, 2018020722, 2018020723]
"""

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/05 07:20

    ありがとうございます。自分の中で読みやすいコードだったのでベストアンサーにさせていただきます!

    キャンセル

+2

from datetime import datetime, timedelta

...

dst = []
tmp_time = start_time

while tmp_time <= end_time:
    dst.append(tmp_time)
    tmp_time += timedelta(hours=1)

start_timeやend_timeの作り方はご自身で考えましょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

# -*- coding: utf-8 -*-
from datetime import datetime, timedelta


def date_generator(start_day:int, end_day:int):
    assert start_day < end_day
    current_dt = datetime.strptime(str(start_day), "%Y%m%d%H")
    end_dt = datetime.strptime(str(end_day), "%Y%m%d%H")

    while current_dt <= end_dt:
        yield current_dt
        current_dt += timedelta(hours=1)


def main() -> None:
    date_list = list(map(lambda x: int(x.strftime("%Y%m%d%H")), date_generator(2018020100, 2018020723)))
    print(date_list)


if __name__ == "__main__":
    main()

◇参考情報
大量のバイナリファイルから破損ファイルの有無,ファイルの存在有無をチェックしたい

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

from datetime import datetime, timedelta

start_day = datetime(2018,2,2 ,0)
end_day = datetime(2018,2,  7, 23)
td=end_day-start_day
[start_day+timedelta(hours=i) for i in range(td.days*24+td.seconds//3600 +1)]

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Python

    9289questions

    Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

  • DateTime

    57questions

    多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。