setuna0531
@setuna0531

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【Python】カレンダー作成について教えてください。

Q&A

Closed

現在、Djangoにて予約カレンダーを作成しています。
作成イメージとしては、ヘアサロンの予約画面のような空いている時間には"〇"
予約が一定数超えた時間には"×"、休みの日or過去日は"-"などを15分刻みで表示したいです。

Webにてカレンダーサンプルがあったため、そちらを参考に作成しているのですが
1時間刻みでの表示しか出来なくて苦戦しています。
(参考にしたサイト様:https://blog.narito.ninja/detail/160/ )

現在勉強中のため、ヒント等でも構いません。ご教授お願い致します。
※初投稿のため、投稿の不備はお許しください。

【環境】
Python version:3.6.9
Django Version: 3.0.8

views.py
# 9時から17時まで1時間刻み、1週間分の、値がTrueなカレンダーを作る
        calendar = {}
        for hour in range(9, 18): #←ここを np.arange(9, 18, 0.15)などしてみたが出来なかった。
            row = {}
            for day in days:
                row[day] = True
                calendar[hour] = row
0

1Answer

時刻は60進数なので単純に15ステップではうまくいかないと思います。
どう組み込むかは別として、時刻は以下のように作れると思います。
(もっといい方法あるかもしれませんけど…)

import datetime

start_time = datetime.datetime.strptime('9:00', '%H:%M')
for i in range(8*4+1):  # 8時間
    min = i * 15
    time = start_time + datetime.timedelta(minutes=min)
    print(time.strftime('%H:%M'))
2Like

Comments

  1. @setuna0531

    Questioner

    ご回答ありがとうございます!

    現在は分表記もできるように変更しています。
    hourではなくminuteで時間を計算するように設定を変更しました。
    minute // 60 でhourと同じ値が求められるのでその方が効率が良いかと思い
    変更させていただきましたため、解決とさせていただきます!

    hawk777さんのソースも今後活かせる場面があれば使用させていただきます!
    ご回答ありがとうございました!

Your answer might help someone💌