Fala pessoal, estava de boa aqui em casa e resolvi programar um pouco em Python. Implementei a classe MinhaData que originalmente foi escrita em Java.
Quando executei descobri um agravante, o código em Java estava cortando o resultado quando as datas passadas eram muito distantes. Já em Python não tive esse problema e a execução do código também se mostrou mais rápida ... o que o Java fazia em x minutos Python fazia em x/2.
Vamos ver como ficou? Segue o código ai:
MinhaData.py
#-*- encoding: utf-8 -*-
import timeit
class MinhaData():
def __init__(self, dia, mes, ano):
self.dia = dia
self.mes = mes
self.ano = ano
def isBissexto(self, ano):
if ano % 4 == 0 and (ano % 100 != 0 or ano % 400 == 0):
return True
return False
def calcDias(self, d1, d2):
return abs(self.qtdeDias(d1) - self.qtdeDias(d2))
def qtdeDias(self, data):
nroDiasMes = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
dias = 0
for dia in range(1, data.dia+1):
dias += 1
for mes in range(data.mes):
dias += nroDiasMes[mes]
for ano in range(1, data.ano+1):
if self.isBissexto(ano):
dias += 366
else:
dias += 365
return dias
if __name__ == '__main__':
d1 = MinhaData(21,03,2013)
d2 = MinhaData(21,03,1994)
print('Intervalo de',d1.calcDias(d1, d2), 'dia(s)')
Pessoal estou preparando um post juntamente com o Guilherme Bueno onde comparamos o desempenho das linguagens de programação: Java, C/C++ e Python executando um mesmo algoritmo ... aguadem. Bons estudos!!!
Nenhum comentário:
Postar um comentário