Bom dia, estou vendo alguns videos aulas sobre java e em um dos videos mostra como criar uma class data com metodo le_data mas infelizmente os getDay, Month, Year aparecem riscados e nao consigo compilar, segue abaixo o codigo fonte:
package utilitarios;
import java.util.Date;
public class data {
String dia, mes, ano, dia_semana;
public void le_data()
{
Date data = new Date();
dia = ""+data.getDate();
mes = ""+data.getMonth();
ano = ""+(1900 + data.getYear());
dia_semana = ""+data.getDay();
}
}
O erro :
Ouvindo em javadebug
Não foi possível enviar o ponto de interrupção LineBreakpoint Exif.java : 15, razão: O ponto de interrupção está configurado fora de qualquer classe.
Inválido LineBreakpoint Exif.java : 15
Executando programa do usuário
LineBreakpoint data.java : 24 enviado com êxito.
Depurador interrompido em código-fonte não compilável.
Thread main parada em data.java:18.
MethodBreakpoint [utilitarios.data].le_data ‘()Lvoid;’ enviado com êxito.
MethodBreakpoint [utilitarios.data].le_data ‘()Lvoid;’ enviado com êxito.
E pra falar a verdade desde ontem estou tentando descobrir o erro e nao consigo criar a tal class compilando certinho…Me ajudem…Por favor.
Olá, primeiro por favor utilize a tag code. Facilita muito a analise.
Agora ao problema:
Seu programa nao tem o metodo main. Adiciona isso ao codigo:
public static void main(String[] args) {
data d = new data();
d.le_data();
System.out.println(d.dia);
System.out.println(d.mes);
System.out.println(d.ano);
System.out.println(d.dia_semana);
}
O fato dos metodos estarem riscados significa que ele(s) esta(o) deprecated. Significa que o seu uso não é encorajado.
Tente fazer assim:
[code]package utilitarios;
import java.util.GregorianCalendar;
public class data {
String dia, mes, ano, dia_semana;
public void le_data() {
GregorianCalendar calendario = new GregorianCalendar();
dia = "" + calendario.get(GregorianCalendar.DATE);
mes = "" + calendario.get(GregorianCalendar.MONTH);
ano = "" + calendario.get(GregorianCalendar.YEAR);
dia_semana = "" + calendario.get(GregorianCalendar.DAY_OF_WEEK);
}
public static void main(String[] args) {
data d = new data();
d.le_data();
System.out.println(d.dia);
System.out.println(d.mes);
System.out.println(d.ano);
System.out.println(d.dia_semana);
}
}[/code]
E só mais uma coisa, sempre declare sua classe com a primeira letra em maiusculo. Ao inves de “data” coloque “Data”. De uma olhada nisso aqui http://www.tiexpert.net/programacao/java/nomenclatura.php
Bom dia amigo Sem Nome tentei a segunda opcao mas nao ta dando certo:
[code]import java.util.GregorianCalendar;
public class Data
{
String dia, mes, ano, dia_semana;
public void le_data();
{
GregorianCalendar calendario = new GregorianCalendar();
dia = "" + calendario.get(GregorianCalendar.DATE);
mes = "" + calendario.get(GregorianCalendar.MONTH);
ano = "" + calendario.get(GregorianCalendar.YEAR);
dia_semana = "" + calendario.get(GregorianCalendar.DAY_OF_WEEK);
}
public static void main (String [] args)
{
Data d = new Data();
d.le_data();
System.out.println(d.dia);
System.out.println(d.mes);
System.out.println(d.ano);
System.out.println(d.dia_semana);
}
}[/code]
o erro é o seguinte:
init:
Deleting: C:\Estoque\build\built-jar.properties
deps-jar:
Updating property file: C:\Estoque\build\built-jar.properties
Compiling 1 source file to C:\Estoque\build\classes
warning: [options] bootstrap class path not set in conjunction with -source 1.6
C:\Estoque\src\Data.java:6: error: missing method body, or declare abstract
public void le_data();
1 error
1 warning
C:\Estoque\nbproject\build-impl.xml:626: The following error occurred while executing this line:
C:\Estoque\nbproject\build-impl.xml:245: Compile failed; see the compiler error output for details.
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)
[quote=Bulldog]Bom dia amigo Sem Nome tentei a segunda opcao mas nao ta dando certo:
[code]import java.util.GregorianCalendar;
public class Data
{
String dia, mes, ano, dia_semana;
public void le_data();
{
GregorianCalendar calendario = new GregorianCalendar();
dia = "" + calendario.get(GregorianCalendar.DATE);
mes = "" + calendario.get(GregorianCalendar.MONTH);
ano = "" + calendario.get(GregorianCalendar.YEAR);
dia_semana = "" + calendario.get(GregorianCalendar.DAY_OF_WEEK);
}
public static void main (String [] args)
{
Data d = new Data();
d.le_data();
System.out.println(d.dia);
System.out.println(d.mes);
System.out.println(d.ano);
System.out.println(d.dia_semana);
}
}[/code]
o erro é o seguinte:
init:
Deleting: C:\Estoque\build\built-jar.properties
deps-jar:
Updating property file: C:\Estoque\build\built-jar.properties
Compiling 1 source file to C:\Estoque\build\classes
warning: [options] bootstrap class path not set in conjunction with -source 1.6
C:\Estoque\src\Data.java:6: error: missing method body, or declare abstract
public void le_data();
1 error
1 warning
C:\Estoque\nbproject\build-impl.xml:626: The following error occurred while executing this line:
C:\Estoque\nbproject\build-impl.xml:245: Compile failed; see the compiler error output for details.
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)
[/quote]
Tira aquele ; da declaração do metodo. Você só usa ; em declaracao de metodo quando ele for abstract e quando você for fazer assim o metodo não possui um corpo.
Companheiro deu certinho agora, so tem um probleminha o GregorianCalendar.MONTH retornou mes 04 porq acho q ele conta de 0 a 11, como faço para retornar o mes correto que é 5…?
Sim, ele vai de 0 a 11. É só incrementar 1 nele.
Ficaria assim:
mes = "" + (calendario.get(GregorianCalendar.MONTH) + 1);
Lembre-se que se você tentar colocar mes = "" + 1 + (calendario.get(GregorianCalendar.MONTH); ele imprimirá 14 pois apartir do ponto em que você coloca um “” ele já trata como uma String e “1” + “4” vai retornar “14”. Se por entre parenteses, eles serao os primeiros a serem executados, realizando a soma e depois concatenando.
RESOLVIDO…MUITO OBRIGADO.