2009-11-17 19 views
5

Zaman hesap makinesi gibi davranan python komut dosyasını yazmak istiyorum. ÖrneğinZaman hesaplamak için Python nasıl kullanılır?

:

zaman şimdi 1 saat, 23 dakika, ve buna 10 saniye eklemek istediğiniz 13:05:00

olduğunu varsayalım.

ve ben de yanıtı yazdırmak istiyorum.

Bunu Python'da nasıl yaparım?

Ne de tarih dahil edilir?

+0

o ana kadar sahip kod gösteriniz yardımcı olur. Bu “datetime” modülü veya “time” modülü kullanılarak yapılabilir. Lütfen bu modüllere bakın ve özel sorular sorun. –

cevap

0

Özellikle mx.DateTime ve DateTimeDelta'a bakın.

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

Zamanın aslında çalışmak için oldukça karmaşık bir şey olduğunu unutmayın. Artık yıllar ve artık saniye geçiyor ...

3

datetime.timedelta'a bakın.

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 sabit zaman farkları için tasarlanmıştır (örneğin 1 gün 1 ay değil, sabitlenmiştir). (Zaman olsun sonra ancak combine bir datetime nesnesine bir tarih ve zaman, o kullanabilir ve) bu sadece bir zaman ek yapmak mantıklı değil o

>>> 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 

Not. DST büyük suçlu. Örneğin, 12:01 am + 5 saat farklı günlerde 4:01, 5:01 veya 6:01 olabilir. tarihleri ​​ve saatleri hesaplamak için

3

birkaç seçenek vardır ama basit bir yol yazacak:

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() 

o

İlgili konular