Jump to content
Alvess

Duvida no ano bissexto

Recommended Posts

Alvess

Olá!

Tenho aqui uma dúvida q ñ consegui perceber, sobre para validar o ano bissexto no mes de Fevereiro;

Tenho aqui um programito:

if((ano%400==0) && (mes==2) && (dia < 29))

            {

                            do {

                                printf("Qual o dia?");

                                scanf("%d", &dia);

                                }

                            while(dia <1 || dia >29);

                            }

do

{

printf("Qual o mes?");

scanf("%d",&mes);

}

while(mes<1 || mes>12);

          if((mes == 2) && (ano %400 == 0))

          {

              do

              {

                    printf("Qual o dia?");

                    scanf("%d", &dia);

                    }

              while(dia<1 || dia >28);

              }

Quando o utilizador o ano bissexto ele não pede as datas. :):P :P

Agradeço a vossa ajuda.

Share this post


Link to post
Share on other sites
Diutsu

Um ano é bissexto se: for divisível por 4, mas não por 100, com a excepção de que se for divisível por 400 é bissexto.

Depois, esse teu primeiro if que tens no teu post não vai funcionar porque ainda não pediste nem o mês, nem o dia ao utilizador. E no teu código que tens ai não estás a pedir o ano, a menos que o faças antes, o programa nunca vai poder calcular se o ano é bissexto.

Por ultimo a condição que estás a usar para saberes se é bissexto é a mesma que estás a usar caso ele não seja bissexto.


XX SINFO - Semana Informática

Share this post


Link to post
Share on other sites
Moneybag

Boas desculpem lá incomodante, mas também necessitava do algo rito para calcular ano bissexto ou não, para aplicar em C#.

Share this post


Link to post
Share on other sites
Diutsu

Boas desculpem lá incomodante, mas também necessitava do algo rito para calcular ano bissexto ou não, para aplicar em C#.

O algoritmo é o mesmo que para C, aliás é o mesmo para qualquer linguagem. O algoritmo vai ser baseado neste facto:

Um ano é bissexto se: for divisível por 4, mas não por 100, com a excepção de que se for divisível por 400 é bissexto.

Rápidamente consegues transformar este facto em duas ou três condições, que te permitem estabelecer um função que dado um ano X diz se ele é bissexto ou não


XX SINFO - Semana Informática

Share this post


Link to post
Share on other sites
mjamado

Boas desculpem lá incomodante, mas também necessitava do algo rito para calcular ano bissexto ou não, para aplicar em C#.

Usa o método isLeapYear da estrutura DateTime. Não reinventes a roda...


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
Moneybag

Usa o método isLeapYear da estrutura DateTime. Não reinventes a roda...

hahah mas o C# já tras tudo pré-feito?! é por isso que sempre que envento um metodo novo, fico na duvida se já existe um função pre-feita ou não  ;)

Share this post


Link to post
Share on other sites
mjamado

hahah mas o C# já tras tudo pré-feito?! é por isso que sempre que envento um metodo novo, fico na duvida se já existe um função pre-feita ou não  :D

O C# não traz tudo feito, a .NET é que traz quase tudo... Por isso é que se chama uma framework...  ;)

Mas, vá, vamos sair daqui, que encavalitá-mo-nos num tópico na secção errada...  :D


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Share this post


Link to post
Share on other sites
Moneybag

O C# não traz tudo feito, a .NET é que traz quase tudo... Por isso é que se chama uma framework...  ;)

Mas, vá, vamos sair daqui, que encavalitá-mo-nos num tópico na secção errada...  :D

haha tenho de fazer mais umas pesquisas acerca do framework, obrigado

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

×
×
  • Create New...

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.