Boa noite galera!
O 18° exercício diz assim:
“Faça um Programa que peça uma data no formato dd/mm/aaaa e determine se a mesma é uma data válida."
Vamos ao código após a explicação:
“Faça um Programa que peça uma data no formato dd/mm/aaaa e determine se a mesma é uma data válida."
Vamos ao código após a explicação:
# -*- coding: latin-1 -*-
def validaData(dia, mes, ano):
if dia > 0 and dia <= 31:
if mes > 0 and mes <= 12:
mostraData (str(dia), str(mes), str(ano))
else:
print('O mes: %s é inválido.' % (mes))
else:
print('O dia: %s é inválido.' % (dia))
def mostraData(dia, mes, ano):
data = ('%s,%s,%s') % (dia, mes, ano)
print(data.replace(',', '/'))
dia = int(input('Digite o dia: '))
mes = int(input('Digite o mes: '))
ano = int(input('Digite o ano: '))
validaData(dia, mes, ano)
Como podemos na primeira linha de código declaramos uma função validaData que vai receber como parâmetro o dia, mes, e ano digitados pelo usuário esse parâmetros vão ser enviados como números inteiros para podermos fazer as verificações, dentro da função temos o primeiro if que verifica se o dia é entre 1 e 31 após o segundo if que verifica se o mes esta entre 1 e 12 caso as duas verificações forem verdades chamamos uma outra função mostraData e enviamos para ela os mesmos parâmetros enviados para a função validaData mas com uma diferença que é a conversão do tipo inteiro para string que facilita na hora de "printar" na tela o formato da data: dd/mm/aaaa, mas se uma das verificações do if da função validaData for falsa "printamos" na tela onde o erro ocorreu se foi no mes, ou no dia. Passando para próxima função mostraData, como já dito se na função anterior validaData ocorrer conforme codificado a função mostraData recebe dia, mes e ano e os armazena em data sem nenhuma formatação apenas dia,mes,ano, poderíamos ja ter posto a formatação assim %s//%s//%s que não precisaríamos da próxima linha do código mas eu quero mostrar a vocês um novo método que está descrito no print logo a seguir; no print(data.replace(',','/')) nós simplesmente mostramos na tela a data formatada trocando(replace) a formatação que está em data que é dia','mes','ano(as virgulas) pelas (barras) ficando assim dia/mes/ano, acabando as funções nós declaramos as variáveis que vão receber dia, mes e ano como inteiros e instanciamos a função validaData com os respectivos valores das variáveis e começamos o ciclo como explicado no começo.
É isso pessoal, gostaram? se tiverem dúvidas postem aqui ou mandem email, até a próxima.
É isso pessoal, gostaram? se tiverem dúvidas postem aqui ou mandem email, até a próxima.
e ano bissexto ? mes com 31 dias, mes com 30 ?
ResponderExcluir