piątek, 1 kwietnia 2011

Kreatywne pola

Żona z koleżankami startuje nowy kreatywny projekt pt. "Kreatywne pole".
Projekt jest bardziej artystyczny niż techniczny, ale można tam znaleźć sporo ciekawych rzeczy :)
Polecam.
javascript:void(0)

środa, 5 stycznia 2011

Startujemy - python a dodawanie dat

Pewnego razu, późnym wieczorem utknąłem na głupim problemie - jak dodać czas do daty. Nie wiem czy było to spowodowane późną porą, ogólnym zmęczeniem czy chwilową zaćmą umysłową, ale czego bym nie próbował po prostu nie wychodziło.
Oczywiście w dokumentacji jest to opisane, ale początkowo byłem bardzo zdziwiony że nie można dodawać do siebie dwóch dat. Chciałem na początek dodać jedną godzinę, minutę i sekundę do daty:

import datetime
a = datetime.datetime(2000,1,1)
b = datetime.datetime(2000,1,1,1,1,1)
c = a + b

Traceback (most recent call last):
  File "", line 1, in 
TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'datetime.
datetime'


Kończyło się oczywiście błędem powodującym u zmęczonego człowieka święte oburzenie: Jak to się nie da !
W pierwszej chwili zacząłem kombinować, że to pewnie kwestia dodania daty w "b", w sumie niepotrzebnej bo i tak chcę tylko sekundę. Zamieniłem b na:
b = datetime.time(1,1,1)
ale efekt był podobny. Ki diabeł? Kombinowałem na wszelkie możliwe sposoby i nic nie wychodziło W końcu dałem spokój i poszedłem spać.
Rano mnie olśniło! Do tego służy przecież datetime.timedelta !

b = datetime.timedelta(hours=1, minutes=1, seconds=1)
c = a + b
print c
2000-01-01 01:01:01