Transformar numeros inteiros em dias, meses e anos

14 respostas
E

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!

14 Respostas

M

Procure algo sobre

GregorianCalendar.

F

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é…

C

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

F

clone_zealot:
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


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:

F

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

C

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

prometo ser mais bonzinho no ano que vem papai…

thiago.correa

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?!

fantomas

elaine cristina:
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???
desculpe se não fui clara!

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

E

fernandoeick:
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

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

E

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 );

}

}

MuriloCieciasComputa

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);
}    }
pmlm
elaine cristina:
esse programa na verdade não tem muito a ver com datas, ele esta mais para numeros inteiros.
Mas que programa? Era para aprenderes a por as tags [code] que pelos vistos, não resultou.
F

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…

thiago.correa

elaine cristina:
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 );

}

}

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!

Criado 18 de junho de 2009
Ultima resposta 19 de jun. de 2009
Respostas 14
Participantes 8