Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lokinhu

[Resolvido] Dia Juliano

Recommended Posts

Teoria: Subtrai a data informada pelo usuário pela data 01/01/Ano (Ano=Ano que o usuario digitou)...(+1 dia). E Obtem-se o Dia Juliano.

 

Exemplo:

 

Informe uma data: //O USUARIO INFORMA

10/01/2000

 

Resultado: //CALCULA

Dia Juliano: 10

 

 

 

Calculo por tras do exemplo:

30/12/2000 - 01/01/2000 = 355 dias (o resultado eh dado em dias)

 

 

Outros exemplos de Dia Juliano:

 

01/01/xxxx - Dia Juliano = 1

02/01/xxxx - Dia Juliano = 2

...

 

01/02/xxxx - Dia Juliano = 32

02/02/xxxx - Dia Juliano = 33

...

 

01/03/xxxx - Dia Juliano = 60

02/03/xxxx - Dia Juliano = 61

...

 

01/04/xxxx - Dia Juliano = 91

02/04/xxxx - Dia Juliano = 92

...

 

31/12/xxxx - Dia Juliano = 366

 

Ou seja 1 de Janeiro eh o Dia Juliano 1... e 31 de Dezembro eh o Dia Juliano 366.(desconsiderando que certos anos tem 365)

 

 

 

Estou fazendo essa programacao mais nao ta dando certo, esta dando erro na linha DateTime data_subtrair = Convert.ToDateTime(01 / 01 / ano);, mas nao especifica o erro.

 


                string data = txtdata.Text;
                int ano = DateTime.Parse(data).Year; //CAPTURA O ANO DIGITADO

                DateTime data_inicial = Convert.ToDateTime(txtdata.Text); // PEGA A DATA DIGITADA PELO USUARIO
                DateTime data_subtrair = Convert.ToDateTime(01 / 01 / ano); //DATA FIXA, SUBTRAI ESSA DATA DA DATA DIGITADA PELO USUARIO PARA CALCULAR

                TimeSpan dif = data_inicial.Subtract((data_subtrair));


                msg = msg + "Dia Juliano:" + dif.Days;


                    lblresultado.Text = msg;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não consegui entender, dentro do seu programa já não esta chapada "01/01" ?

 

Abraços...

 

 

Sim, esta chapado "01/01" so que o certo seria 00/01, so que como nao da pra ser isso eu tenho que adicionar um dia fixo na programacao

 

 

Tipo, vou explicar...

 

O programa ta fazendo a data informada pelo Usuario menos a data fixa (01/01/xxxx), ate ai tudo bem, so que ele da o resultado 1 dia a menos do que deveria ser... e eu nao posso colocar (00/01/xxxx) na programacao, o que resolveria o problema, entao tenho q por alguma coisa para adicionar +1 dia no resultado final do dia Juliano.

 

Exemplo:

O ano de 2000 tem 366 dias (Esse eh bissexto pois tem 366 dias)

O ano de 2009 tem 365 Dias (Normal)

 

O programa ta dando nos anos bissexto 365 (bissexto) e 364 (Normal), entao tenho q adicionar +1 dia na data final, entendeu?

 

Outro exemplo:

Se o usuario digita 01/01/2009

Entao eh feito o calculo (01/01/2009 - 01/01/2009) = ZERO DIA JULIANO, e nao pode dar 0, pois 1 de janeiro eh o PRIMEIRO dia Juliano ! entendeu agora ? http://forum.imasters.com.br/public/style_emoticons/default/natal_tongue.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, usando a matematica pura, um número menos esse mesmo número sempre vai ser 0 (zero)

 

O que você pode fazer é usar um if

 

Ex.: (C#)

integer Resultado = (DataUsuario - DataInformada);
if (Resultado == 0)
{
  Resultado = 1;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.