GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Transformar numeros inteiros em dias, meses e anos


#1

ola pessoal!
sou nova por aqui e tenho um prolema para resolver!
tenho que criar um programa em java que receba um numero do usuario e transforme em dias meses e anos
a formula é essa: eu acho!

numero inserido pelo usuario=x
anos= numeros de anos encontrado
y=numero de meses encontrado
dias= numero de dias encontrado
ex.
numero inserido = 391
1 ano
1 mes
1 dia

x/360=anos
x%360=y

y/30=meses
y%30=dias

como faço????????[color=orange][/color]
desculpe se não fui clara!


#2

Procure algo sobre

GregorianCalendar.


#3

Na seção de artigos do GUJ tem este aqui:
http://www.guj.com.br/article.show.logic?id=8
Que ensina a manipular datas em Java com a classe Date.

Mas para o teu caso acho que seria mais útil você pesquisar por "Calendar" - que é uma maneira mais eficiente e nova de trabalhar com datas no Java - tanto no Google, quanto na API - http://java.sun.com/javase/6/docs/api/

Até...


#4

Calender novo? =/
Eu lembro que eu sofri, aprendendo o Calendar a 5 anos atrás!!!
Mas, realmente, pesquise sobre o GregorianCalendar...

Uma dica pra vc garota:
Calendar c = GregorianCalendar.getInstance();
//x é o valor, em milisegundos, da sua data desde 01/01/1970
//caso o seu x seja somente dias, ou alguma outra informação, não se esqueça de calcular os ms
c.setTime(x);
int meses = c.get(Calendar.MONTH);

o resto é com vc ;D


#5

Novo, se for comparado ao Date :shock: .
Mas agora eu que pergunto: Sofreu aprendendo Calendar!!!??? Calendar é a coisa mais fácil que tem de aprender!!!

Ah, você tem que diminuir o tamanho do teu avatar :thumbup:


#6

Ah, e sem querer ser chato, ou pegar no pé, codificação deve ser feita dentro das tags [/code]

Para a menina, que é novata, e para você, acho que o seguinte tópico é uma boa pedida:
http://www.guj.com.br/posts/list/50115.java


#7

offtopic
ahhh, esses molequinhos que se acham donos de fórum :lol:

prometo ser mais bonzinho no ano que vem papai...


#8

Na verdade o que a colega quer não é digitar algo do tipo

int dia = 1;
int mes = 2;
int ano = 2009;

e a partir desses dados montar uma data, ela quer digitar um número inteiro e a partir desse número saber quantos anos, meses e dias existe nesse número.

Elaine qual seria a sua dúvida?! Tá com problema na lógica ou em como codificar?!


#9

Tente fazer algum código e envie, mesmo que vc ache que esteja muito errado, senão a galera pode achar que vc está fazendo corpo mole e de repente não é isso.

P.S Não esqueça de utilizar a tag code.

flws


#10

oi!
tudo bem?
esse programa na verdade não tem muito a ver com datas, ele esta mais para numeros inteiros.


#11

pelo que eu sei é mais ou menos isso
mas ele esta apresentando erros!

import javax.swing.JOptionPane;

public class Anos{

public static void main( String[] args )
{
int anos;
y;
meses
dias
x = Integer.parseInt(
JOptionPane.showInputDialog( "Digite o numero" ) );
boolean primo = true;

  for ( x/360= anos; x%360= y; y/30= meses; y%30= dias){  

    }  
  }  

    JOptionPane.showMessageDialog(Anos + " anos "; Meses + " meses "; Dias + "dias );   

  System.exit( 0 );

}

}


#12

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Calendariotrabalho1 {
public static void main(String[] args) {

      System.out.println("    ");       
      String meses[] = {"Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"};
      Calendar cHoje = new GregorianCalendar();
      Calendar cPassado = new GregorianCalendar(
                                  cHoje.get(Calendar.YEAR),
                                  cHoje.get(Calendar.MONTH),
                                  1);
      int dia1 = cPassado.get(Calendar.DAY_OF_WEEK);
      int diaMax = cHoje.getActualMaximum(Calendar.DAY_OF_MONTH);
      int dia = 1;
      int i;
      String strDia;

      System.out.println("  D   S   T   Q   Q   S   S  ");
      System.out.println("------------------------------");
      for(i=1;i < dia1;i++) {
          System.out.print("    ");
      }
      i = dia1;

      while(dia <= diaMax) {
          if(i > 7) {
              i=1;
              System.out.println("   ");
          }
          strDia = Integer.toString(dia);
          if(dia == cHoje.get(Calendar.DAY_OF_MONTH)) {
              strDia =  strDia + "*";
          }
          if(strDia.length() < 2) {
              strDia = " " + strDia;
          }

          System.out.print(" " + strDia + " ");
          dia++;
          i++;
          if(strDia.length() == 3) {
              System.out.print("\b");
          }
      }
      System.out.println("\n------------------------------");
      String extenso = cHoje.get(Calendar.DAY_OF_MONTH) + " de " + meses[cHoje.get(Calendar.MONTH)] + " de " + cHoje.get(Calendar.YEAR);
      for(i=0;i<(29 - extenso.length())/2;i++) {
          System.out.print(" ");
      }
      System.out.println(extenso);
}    }

#13

Mas que programa? Era para aprenderes a por as tags [code] que pelos vistos, não resultou.


#14

Ehh... em que nível que anda este fórum hein!!??

Usuários novos e mal-educados que não aceitam sugestões e dicas para melhorar a qualidade das postagens. E eu só lamento pelas pessoas que não aceitam receber criticas construtivas. E lamento mais ainda por aqueles que dão mais corda...

Enfim, deixo este tópico livre para vocês, ok!? Desculpe se magoei alguém...


#15

Oi que erros estão dando pelo visto a declaração das variáveis estão erradas tente algo assim

int ano = 0;
int mes = 0;
int dia =0;
int x = 0;
int y =0;

Por enquanto, tenha o costume de ao criar uma variável de inicializá-la também!
Outra coisa para facilitar, sempre que der um erro, tente explicar o que está acontecendo, o compilador sempre procura mostrar mensagens de erro (chamadas de StarckTrace), isso nos facilita na hora de lhe ajudar!


#16