def somar_data(data= '2005-07-04', dias= 0):
'''
Uso: somar_data(data, dias)
data -> data no formato 'ano-mes-dia'
dias -> dias de acréscimo
Retorna a data com acréscimo
'''
data= datetime.date(int(data[:4]), int(data[5:7]), int(data[-2:]))
acrescimo= datetime.timedelta(int(dias))
return str(data + acrescimo)
--
Abraços,
Guedes.
============================================
*** Nada é Impossível, Apenas Improvável ***
*** Seja Livre, Use GNU/Linux ***
UIN-> 177815213
E-MAIL'S:
PHP-> billgue...@terra.com.br
OUTROS-> billg...@ig.com.br
PYTHON-> billgued...@terra.com.br
POSTGRES -> billguede...@terra.com.br
EMPRESAS-> billg...@terra.com.br
GNU/LINUX-> billgued...@terra.com.br
SISTEMA: Debian GNU/Linux - Kernel 2.4.27
===============================================================
Antes de enviar sua mensagem dê uma lida em:
http://www.pythonbrasil.com.br/moin.cgi/AntesDePerguntar
===============================================================
Links do Yahoo! Grupos
<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html
Você tem que utilizar objetos timedelta para isso. Veja um exemplo:
<code>
import datetime
tempo1 = datetime.time(13, 10, 2)
tempo2 = datetime.time(13, 20, 2)
h1 = datetime.timedelta(hours=tempo1.hour, minutes=tempo1.minute,
seconds=tempo1.second)
h2 = datetime.timedelta(hours=tempo2.hour, minutes=tempo2.minute,
seconds=tempo2.second)
diferenca = h2-h1
print h1
print h2
print diferenca
</code>
Certo? ;)
Junior (http://www.gs.kitbr.com/)
"Foi o que me perdeu; porque, mergulhado na lama, eu me consolava sonhando
que em outros instantes era um herói, e o herói iluminava a lama com o seu
prestígio: é proibido ao homem comum mergulhar no charco; mas o herói, esse
está situado tão alto que não poderá jamais se sujar completamente; então eu
posso me afundar no lodo." (Dostoiévski em 'Memórias do Subsolo')
import datetime, string
def hora_decorrente(inicio= '11:23', termino= '13:46'):
hora_inicial= datetime.datetime(2005, 07, 05, int(inicio[:2]),
int(inicio[-2:]))
hora_final= datetime.datetime(2005, 07, 05, int(termino[:2]),
int(termino[-2:]))
decorrencia= string.split(str(hora_final - hora_inicial), ':')
return str(decorrencia[0]) + ':' + str(decorrencia[1])
hora= hora_decorrente('12:12', '18:05')
print 'Passou %s horas' % hora
https://moin.conectiva.com.br/DateUtil
É um módulo que trabalha com datas que foi desenvolvido pelo Gustavo Niemeyer...
Osvaldo
On 7/5/05, Marcos Mendonça <mar...@gmail.com> wrote:
> É isso mesmo
[corta]
--
Osvaldo Santana Neto (aCiDBaSe)
icq, url = (11287184, "http://www.pythonbrasil.com.br")
Sim, de fato seria muito bom ter isso. Mas, realmente eu não achei nada
nesse sentido.
"""Mas, num teria um jeito mais 'pythonico'?"""
Eu acho que isso aqui seria mais pythônico:
<code>
import datetime
class TimeDelta(datetime.timedelta):
def hours(self):
dias, horas = str(self).split(",")
dias = int(dias.strip("days").strip("day").strip())
horas = horas.strip()
h, m, s = horas.split(":")
h = str(int(h) + (dias * 24)).zfill(2)
return "%s:%s:%s" % (h, m, s)
</code>
Com essa subclasse os métodos e atributos de datetime.timedelta estão sendo
aproveitados e estamos ainda incluindo mais um método chamado hours() que
retornará o desejado. Um exemplo de utilização:
<code>
k = TimeDelta(hours=42, minutes=36)
print k
print k.hours()
</code>
Pode-se ainda criar métodos equivalentes para outras medidas de tempo.
Certo? ;)
Junior (http://www.gs.kitbr.com/)
"Os fatos não deixam de existir por serem ignorados." (Aldous Huxley)
On 7/6/05, Washington Coutinho Corrêa Junior <w...@openlink.com.br> wrote:
> """Agora continuo com uma pequena dúvida, e não consegui encontrar a
> resposta na documentação.
>
> Tenho um objeto datetime.timedelta. Se faço algo como
>
> >>> print horas
> 1 day, 18:36:00
>
> Gostaria de imprimir na verdade do total de horas em horas, no caso:
> 42:36:00.
> Como posso fazer isso?"""
>
> Basta você multiplicar a quantidade de dias por 24 e somar com as horas do
> horário que está depois da vírgula. Aí vai uma função que faz isso:
>
> <code>
>
> def tempototal(t):
> dias, horas = str(t).split(",")
> dias = int(dias.strip("day").strip("days").strip())
> horas = horas.strip()
> h, m, s = horas.split(":")
> h = str(int(h) + (dias * 24)).zfill(2)
> return "%s:%s:%s" % (h, m, s)
>
> </code>
>
> Exemplo de utilização:
>
> <code>
>
> k = datetime.timedelta(hours=42, minutes=36)
> print k
> print tempototal(k)
>
> </code>
>
> Certo? ;)
>
> Junior (http://www.gs.kitbr.com/)
> "Quando você entender porque rejeita todos os outros deuses exceto o seu,
> você entenderá porque eu rejeito todos os deuses." (Stephen F. Roberts)