classe Tempo

A classe Tempo contem os seguintes métodos:
  • calcula o tempo
  • insere a data final
  • insere a data inicial
  • mostra as datas inicial e final
A classe Tempo contem os seguintes atributos:
  • v_dataI
    v_dataF
Os dois atributos são globais e do tipo: datetime.
.

Figura 1: interação com o utilizador.

Figura 2: execução do código.

A listagem do código segue abaixo:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

#********************************************************************
# Autor:        ubiratã uaatsim itza I.
# Data:         08/03/2014
# Hora:         11:40:06
#*********************************************************************
# Arquivo:      tempo.py
#
# Uso:          from tempo import Tempo
#               t = Tempo
#               t.
#
# Fontes:      http://docs.python.org/2/library/time.html
#                  http://pymotw.com/2/datetime
#
#*********************************************************************

from datetime import datetime

v_dataI = datetime.today()
v_dataF = datetime.today()

class Tempo:
    '''Trata do dia e a hora.
    '''
    def __init__(self):
        '''Inicia as variáveis do sistema.
        '''
        v_texto = '1'
        print('Definido os atributos da classe Tempo com sucesso.')

    def entraDataInicial(v_dataini):
        '''Entre com a data inicial no formato: ano-mes-dia
           ou a cadeia "Agora".
           ano: quatro dígitos.
           mês: sem o zero inicial.
           dia: sem o zero inicial.
           separados por traço.
           exemplo: 2014-5-16
        '''
        global v_dataI
        global v_dataF
       
        if v_dataini == 'Agora':
            v_dataI = datetime.today()
        else:
            v_dataI = datetime.strptime(v_dataini, '%Y-%m-%d')
        print(v_dataI)

    def entraDataFinal(v_datafin):
        '''Entre com a data final no formato: ano-mes-dia
           ano: quatro dígitos.
           mês: sem o zero inicial.
           dia: sem o zero inicial.
           separados por traço.
           exemplo: 2014-5-16
        '''
        global v_dataI
        global v_dataF
       
        v_dataF = datetime.strptime(v_datafin, '%Y-%m-%d')
        print(v_dataF)

    def mostraDataIniFin():
        '''Mostra a data inicial e final.
        '''
        global v_dataI
        global v_dataF
       
        print('Inicial: ', v_dataI, '--', 'Final: ', v_dataF)
       
    def calculaTempo():
        '''Calcula o tempo restante.
        '''
        global v_dataI
        global v_dataF
       
        if v_dataI < v_dataF:
            print('1: ', v_dataF - v_dataI)
        elif v_dataI > v_dataF:
            print('2: ', v_dataI - v_dataF)
        else:
            print('Erro na parada.')


if __name__ == '__main__':
    Tempo()
    print('Classe Tempos iniciada!')

#-----------------------------------------------------------------------------------------------------
Alguns comandos interessantes e devidamente ajustados para rodar nesta versão da máquina virtual Python 3.3.4. (foram todos testados):

from datetime import datetime

Leitura:
c = datetime.now()
c.date()
c.time()

c.day
c.month
c.year

c.hour
c.minute
c.second

Escrita:

>>> import datetime
>>> t = datetime.time(18, 54, 32)
>>> print(t)
18:54:32
>>> t
datetime.time(18, 54, 32)
>>> print(t.hour, t.minute, t.second)
18 54 32


>>> d = datetime.date(2003, 7, 29)
>>> print (datetime.date.today())
2014-03-26


>>> n = datetime.datetime(2003, 8, 4, 12, 30, 45)
>>> n
datetime.datetime(2003, 8, 4, 12, 30, 45)
>>> print (n.year, n.month, n.day)
2003 8 4
>>> print (n.hour, n.minute, n.second)
12 30 45

Fonte: http://effbot.org/librarybook/datetime.htm

#--------------------------------------------------------------------------------------
>>> import time
>>> dt = '20120814174530'
>>> dt_to_strp = time.strptime(dt, '%Y%m%d%H%M%S')
>>> from time import mktime
>>> from datetime import datetime
>>> date_final = datetime.fromtimestamp(mktime(dt_to_strp))
>>> print(date_final)
2012-08-14 17:45:30
>>> from datetime import timedelta
>>> date_substraido = date_final - timedelta(hours = 36)
>>> date_substraido
datetime.datetime(2012, 8, 13, 5, 45, 30)
>>> print(date_substraido)
2012-08-13 05:45:30

Fonte: http://stackoverflow.com/questions/11983609/datetime-and-from-datetime-import-datetime-on-python


http://aprenda-python.blogspot.com.br/2013/03/rapidinha-strings-em-python.html

Figura : execução do código.

#!/usr/bin/env python
#-*- coding:utf-8 -*-

#********************************************************************
# Autor:        ubiratã uaatsim itza I.
# Data:         27/03/2014
# Hora:         12:35:06
#*********************************************************************
# Arquivo:      tempo.py
#
# Uso:          from tempo import Tempo
#               t = Tempo
#               t.
#*********************************************************************

from datetime import datetime, time
import calendar

v_dataHoraI = datetime.today()
v_dataHoraF = datetime.today()

class Tempo:
    '''Trata do dia e a hora.
    '''
    def __init__(self):
        '''Inicia as variáveis do sistema.
        '''
        v_texto = '1'
        print('Definido os atributos da classe Tempo com sucesso.')

    def entraDataHoraInicial(v_datahoraini):
        '''Entre com a data e hora inicial. Exemplo: 201405161245
           No formato: ano mes dia hora minuto
           ou a cadeia "Agora".
           ano: quatro dígitos.
           mês: sem o zero inicial.
           dia: sem o zero inicial.
           separados por traço.
        '''
        global v_dataHoraI

        if v_datahoraini == 'Agora':
            v_dataHoraI = datetime.today()
        else:
            v_dataHoraI = datetime.strptime(v_datahoraini, '%Y%m%d%H%M')
        print(v_dataHoraI)

    def entraDataHoraFinal(v_datahorafin):
        '''Entre com a data e hora final. Exemplo: 201405161030
           No formato: ano mes dia hora minuto
           ano: quatro dígitos.
           mês: sem o zero inicial.
           dia: sem o zero inicial.
           separados por traço.
        '''
        global v_dataHoraF
       
        v_dataHoraF = datetime.strptime(v_datahorafin, '%Y%m%d%H%M')
        print(v_dataHoraF)

    def mostraDataHoraIni():
        '''Mostra a Data e Hora inicial.
        '''
        global v_dataHoraI
       
        print('Data e Hora inicial: ', v_dataHoraI)

    def mostraDataHoraFin():
        '''Mostra a Data e Hora final.
        '''
        global v_dataHoraF
       
        print('Data e Hora final: ', v_dataHoraF)

    def calculaTempo():
        '''Calcula o tempo restante.
        '''
        global v_dataHoraI
        global v_dataHoraF
       
        if v_dataHoraI < v_dataHoraF:
            print('1: ', v_dataHoraF - v_dataHoraI)
        elif v_dataHoraI > v_dataHoraF:
            print('2: ', v_dataHoraI - v_dataHoraF)
        else:
            print('Erro na parada.')


if __name__ == '__main__':
    Tempo()
    print('Classe Tempos iniciada!')


.

Nenhum comentário:

Postar um comentário