2009-11-17 7 views
5

시간 계산기 역할을하는 python 스크립트를 작성하고 싶습니다. 예를 들어Python을 사용하여 시간을 계산하는 방법

:

시간은 지금 1 시간 23 분, 그리고 10 초를 추가 할 13시 5분 0초

가정하자.

답변을 인쇄하고 싶습니다.

어떻게 이것을 파이썬에서 할 수 있습니까?

날짜가 포함 된 경우 어떻게됩니까?

+0

가 지금까지 가지고있는 코드를 제시해주십시오 도움이되기를 바랍니다. 이것은'datetime' 모듈 또는'time' 모듈을 사용하여 수행 할 수 있습니다. 해당 모듈을보고 특정 질문을하십시오. –

답변

0

특히 mx.DateTimeDateTimeDelta을보십시오.

import mx.DateTime 
d = mx.DateTime.DateTimeDelta(0, 1, 23, 10) 
x = mx.DateTime.now() + d 
x.strftime() 

시간은 사실 다소 복잡한 작업입니다. 윤년과 도약 초는 시작일뿐입니다 ...

3

찾아보기 datetime.timedelta.

Example 
>>> from datetime import timedelta 
>>> year = timedelta(days=365) 
>>> another_year = timedelta(weeks=40, days=84, hours=23, 
...       minutes=50, seconds=600) # adds up to 365 days 
>>> year == another_year 
True 
>>> ten_years = 10 * year 
>>> ten_years, ten_years.days // 365 
(datetime.timedelta(3650), 10) 
>>> nine_years = ten_years - year 
>>> nine_years, nine_years.days // 365 
(datetime.timedelta(3285), 9) 
>>> three_years = nine_years // 3; 
>>> three_years, three_years.days // 365 
(datetime.timedelta(1095), 3) 
>>> abs(three_years - ten_years) == 2 * three_years + year 
True 
9

datetime.timedelta가 고정 된 시간 차이를 설계 (예를 들어, 일일 1 개월 아니며, 고정). (시간을 얻을 다음하지만 combine 날짜 시간 객체로 날짜와 시간, 그것을 사용할 수 있으며,) 그냥 한 번에 추가 할 이해가되지 않습니다

>>> import datetime 
>>> t = datetime.time(13, 5) 
>>> print t 
13:05:00 
>>> now = datetime.datetime.now() 
>>> print now 
2009-11-17 13:03:02.227375 
>>> print now + datetime.timedelta(hours=1, minutes=23, seconds=10) 
2009-11-17 14:26:12.227375 

참고. DST가 주요 원인입니다. 예를 들어, 오전 12시 01 분 ~ 오전 5시는 오전 4:01, 오전 5:01 또는 오전 6:01 일 수 있습니다. 날짜와 시간을 계산하기 위해

3

몇 가지 옵션이 있습니다하지만 난 간단한 방법을 쓸 것입니다 :

import datetime 
import dateutil.relativedelta 

# current time 
date_and_time = datetime.datetime.now() 
date_only = date.today() 
time_only = datetime.datetime.now().time() 

# calculate date and time 
result = date_and_time - datetime.timedelta(hours=26, minutes=25, seconds=10) 

# calculate dates: years (-/+) 
result = date_only - dateutil.relativedelta.relativedelta(years=10) 

# months 
result = date_only - dateutil.relativedelta.relativedelta(months=10) 

# days 
result = date_only - dateutil.relativedelta.relativedelta(days=10) 

# calculate time 
result = date_and_time - datetime.timedelta(hours=26, minutes=25, seconds=10) 
result.time() 

관련 문제