Buscar

DIA,MÊS E ANO EM LINGUAGEM C++!

Leia uma data de nascimento de uma pessoa fornecida através de três números inteiros:Dia,Mês e Ano.Teste a validade desta data para saber se está é uma data válida.Teste se o dia fornecido é um dia válido:dia>0,dia<=28 para o mês de fevereiro(29 se o ano for bissexto),dia <=30 em abril,junho,setembro e novembro ,dia <=31 nos outros meses.Teste a validade do mês:mês>0 e mês<13.Teste a validade do ano:ano<= ano atual(use uma constante definida com o valor igual a 2017).Imprimir:"data valida"ou "data invalida" no final da execução do programa.

💡 2 Respostas

User badge image

Joao Andre MArtins Dias

Espero que ajude, resolvi usando um vetor de 12 posiçoes para armazenar os dias de cada mês e facilitar o teste de validade.

Usei um operador ternário para determinar os dias do mes de fevereiro caso seja bisexto (ano%4==0)?29:28; assim se o ano for bisexto no vetor eu troco a posição 1(fevereiro) para 29 ou 28 dias.

 ai é so comparar se o diaMes[mes-1] por que o vetor inicia de 0 com o valor da variavel dia passada pelo usuário, se for menor ou igual ao valor armazenado no vetor é valido.

 

1
Dislike0
User badge image

Joao Andre MArtins Dias

/*
 * File:   main.cpp
 * Author: joao
 * Leia uma data de nascimento de uma pessoa fornecida através de três números inteiros:Dia,Mês e Ano.
 * Teste a validade desta data para saber se está é uma data válida.
 * Teste se o dia fornecido é um dia válido:
 * dia>0,dia<=28 para o mês de fevereiro(29 se o ano for bissexto),dia <=30 em
 * abril,junho,setembro e novembro ,
 * dia <=31 nos outros meses.
 * Teste a validade do mês:mês>0 e mês<13.
 * Teste a validade do ano:ano<= ano atual(use uma constante definida com o valor igual a 2017).
 * Imprimir:"data valida" ou "data invalida" no final da execução do programa.
 */

#include <stdlib.h>
#include<stdio.h>
#define ATUAL 2017
using namespace std;



int main(int argc, char** argv) {
    int diasMes[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int dia, mes, ano;
    char flag = 0;

    printf("\n Entre com a data:");
    printf("\n Dia:");
    scanf("%d", &dia);
    printf("\n Mes:");
    scanf("%d", &mes);
    printf("\n Ano:");
    scanf("%d", &ano);
    diasMes[1] = (ano % 4 == 0) ? 29 : 28;
    if (ano > 0 && ano <= ATUAL) {
        if (mes > 0 && mes <= 12 && dia > 0 && dia <= 31) {
            if (dia<=(diasMes[mes - 1]) ) {
                flag = 1;
            }
        }
    } else {
        printf("Ano [%d] não é valido.", ano);
    }
    printf("A data [%2d/%2d/%4d] é uma data [%s]\n", dia, mes, ano, (flag) ? "valida" : "invalida");
}

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais