SORU
19 EYLÜL 2008, Cuma


Ne N saniye datetime eklemek için standart yoludur.Python zaman?

Python datetime.time değer verilen, 8 *3 = * 9*,* örneğin işte saniye bir tamsayı eklemek için standart bir yol.

Bu açık fikirler işe yaramaz:

>>> datetime.time(11, 34, 59)   3
TypeError: unsupported operand type(s) for  : 'datetime.time' and 'int'
>>> datetime.time(11, 34, 59)   datetime.timedelta(0, 3)
TypeError: unsupported operand type(s) for  : 'datetime.time' and 'datetime.timedelta'
>>> datetime.time(11, 34, 59)   datetime.time(0, 0, 3)
TypeError: unsupported operand type(s) for  : 'datetime.time' and 'datetime.time'

Sonunda bu gibi işlevleri yazdım:

def add_secs_to_time(timeval, secs_to_add):
    secs = timeval.hour * 3600   timeval.minute * 60   timeval.second
    secs  = secs_to_add
    return datetime.time(secs // 3600, (secs % 3600) // 60, secs % 60)

Fakat bunu gerçekleştirebilmek için daha kolay bir yol eksik olduğumu düşünmeden edemiyorum.

İlgili

CEVAP
19 EYLÜL 2008, Cuma


Sahte bir tarih time sadece zaman değerini kullanarak sağlayarak timedelta ve datetime tam değişken kullanabilirsiniz.

Örneğin:

import datetime
a = datetime.datetime(100,1,1,11,34,59)
b = a   datetime.timedelta(0,3) # days, seconds, then other fields.
print a.time()
print b.time()

iki değer, üç saniye arayla sonuçları:

11:34:59
11:35:02

Ayrıca daha okunabilir için tercih olabilir

b = a   datetime.timedelta(seconds=3)

öyle bir isteğiniz varsa.


Eğer bunu yapabilen bir fonksiyon sonra iseniz, aşağıda addSecs kullanarak içine bakabilirsiniz:

import datetime

def addSecs(tm, secs):
    fulldate = datetime.datetime(100, 1, 1, tm.hour, tm.minute, tm.second)
    fulldate = fulldate   datetime.timedelta(seconds=secs)
    return fulldate.time()

a = datetime.datetime.now().time()
b = addSecs(a, 300)
print a
print b

Bu çıkışları:

 09:11:55.775695
 09:16:55

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 07cadikiz07

    07cadikiz07

    17 EKİM 2007
  • Major FX

    Major FX

    6 HAZİRAN 2012
  • pleated-jeans

    pleated-jean

    6 HAZİRAN 2013