Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
Joao_Ingles

Ajuda no codigo..

Recommended Posts

Joao_Ingles

Criar um programa que calcule o numero de dias entre duas datas do mesmo ano. As datas

sao introduzidas no formato dia mes. O programa devera pedir as datas na consola.

Exemplo:

Escreva o ano:

1974

Escreva a primeira data:

25

4

Escreva a segunda data:

25

7

Em casos que a diferenca da um numero negativo, como nesse ultimo exemplo (-91).

O calculo devera ser efectuado numa funcao, invocada pela main().

O ano podera ser bisexto. No calendario gregoriano, que vigora nos paıses catolicos

desde 1582, serao bisextos todos os anos que sejam multiplos de 4, mas nao sejam multiplos

de 100, excepto se forem tambem multiplos de 400. Ou seja, 2000 foi bisexto, mas 1900 nao

foi e 2100 nao sera.

O programa devera alertar para datas que nao facam sentido.

Não sei muito de C, estou no Inicio. Estou a tentar fazer o exercício 3. O que fiz ate agora foi o seguinte:

Declaração das variáveis.. o ciclo para  a verificar se as datas introduzidas são validas ou não. Não sei qual é a função que devo utilizar para fazer a diferença dos dias.

Outra coisa: ele so esta a verificar a primeira data, devo fazer outro switch para o mes2??

#include <stdio.h>

main()

{

int dia,mes,ano;

int dia2,mes2;

   

printf("Escreve o ano: ");

scanf("%d",&ano);

printf("Data1(Formato:dd mm):  ");

scanf("%d%d",&dia,&mes);

printf("Data2(Formato:dd mm):  ");

scanf("%d%d",&dia2,&mes2);

/*Verificação se a data introduzida é valida ou não*/

switch(mes)

{

case 2: if (dia>=1 && dia<=28 + (ano%4==0))

printf("Data Valida\n");

else

printf("Data Invalida\n");

break;

case 4: if (dia>=1 && dia<=30)

printf("Data Valida\n");

else

printf("Data Invalida\n");

break;

default: if (mes<1 || mes>12)

printf("Data Invalida\n");

else

if (dia>=1 && dia<=31)

printf("Data Valida\n");

else

printf("Data Invalida\n");

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.