Lokinhu 0 Denunciar post Postado Dezembro 7, 2009 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
quintelab 91 Denunciar post Postado Dezembro 7, 2009 Coloque desta forma: DateTime data_subtrair = Convert.ToDateTime("01/01/" + ano); Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Lokinhu 0 Denunciar post Postado Dezembro 7, 2009 Coloque desta forma: DateTime data_subtrair = Convert.ToDateTime("01/01/" + ano); Abraços... Deu Certo, obrigado http://forum.imasters.com.br/public/style_emoticons/default/natal_laugh.gif So que pra dar o resultado correto, tenho q por no calculo (+1 dia), pq nao tem como eu por 00/01/xxxx, aonde eu acrescento esse 1 dia ? Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Dezembro 8, 2009 Não consegui entender, dentro do seu programa já não esta chapada "01/01" ? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Lokinhu 0 Denunciar post Postado Dezembro 8, 2009 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
Faccruz 0 Denunciar post Postado Dezembro 9, 2009 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
Lokinhu 0 Denunciar post Postado Dezembro 10, 2009 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; } Obrigado Facc http://forum.imasters.com.br/public/style_emoticons/default/natal_laugh.gif Compartilhar este post Link para o post Compartilhar em outros sites