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

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

新規登録して質問してみよう
ただいま回答率
85.48%
DateTime

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

Python

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

Q&A

2回答

375閲覧

date time package で継続時間を計算

uusrt

総合スコア6

DateTime

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

Python

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

0グッド

0クリップ

投稿2018/03/21 14:55

python の date time package で継続時間を計算したいです。

開店: '10:00:00', 閉店: '16:30:00', return 6.5
開店: '7:30:00', 閉店: '夜', return -99

開店と閉店の二つのinputから継続時間を出して、
もし、時間がinputされなかったら−99を出力したいです。

よろしくお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mkgrei

2018/03/21 14:58

どの部分で詰まっているのですか?
LouiS0616

2018/03/21 15:19

動かなくても良いので、とりあえず現状のコードを見せてください。
guest

回答2

0

python

1from datetime import date 2from datetime import datetime 3from datetime import time 4 5try: 6 op, cl = (datetime.combine(date.today(), time(*map(int, s.split(":")))) 7 for s in map(input, ("開店:", "閉店:"))) 8 print((cl - op).total_seconds() / 3600) 9except ValueError: 10 print(-99)

投稿2018/03/22 05:32

YouheiSakurai

総合スコア6142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

コアになる時間差の計算部分のみコードにしておきます。

python

1time1 = '10:02:05' 2time2 = '08:01:01' 3 4import dateutil 5 6delta = (dateutil.parser.parse(time1) - dateutil.parser.parse(time2)).total_seconds() 7result = dateutil.relativedelta.relativedelta(seconds=delta) 8print(result.hours) # 2 9print(result.minutes) # 1 10print(result.seconds) # 4

全体の処理概要は、以下のような感じでしょうか。
1)以降の処理を簡単にするため、DataFrameに変換しておく(culomnは開店時間・閉店時間)
2)開店時間・閉店時間を時間型に変換しておく(pandas.to_datetime()を使う)
3)開店時間または閉店時間がnanのデータについて経過時間に-99を設定
4)閉店時間-開店時間を行う。
5)項番4)の結果をdateutilの時間差(秒)を使って計算して経過時間に設定
6)計算結果から時・分・秒を取り出して編集

想定されているコードがないので何とも言えませんが、アプローチ方法がわからないようでしたら上記を参考にいったん、コードを書いてわからなくなったら都度質問されるといいと思います。

投稿2018/03/22 13:11

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問