Ingresar fecha

Estoy trabajando con Java 2 y el Netbeans.
Tengo el siguiente código y me da error de compilación, espero que ustedes me puedan ayudar.
package calendario;
import java.util.*;
import java.awt.*;
*
* @author Administrador
*/
public class Main {
* @param args the command line arguments
*/
public static void main(String[] args) {
class DiaPartida extends Panel {
private TextField elDia;
private Button hoy;
private Button diasiguiente;
DiaPartida() {
setLayout (new GridLayout (4,1));
elDia = new TextField();
elDia.setText(GetHoy());
hoy = new Button ("HOY");
diasiguiente = new Button("Mañana");
add (new Label("Dia salida :"));
add(elDia);
add (hoy);
add(diasiguiente);
}
private String GetHoy {
Date d = new Date()
int dia = d.getDate();
int mes = d.getMonth();
int año = d.getYear();
return dia+"/"+mes+"/"año;
}
private String GetMañana() {
Date d = new Date ()
int dia = d.getDate();
int mes = d.getMonth();
int año = d.getYear();
int diasfebrero = 28;
if (((i%4 == 0) && (i%100!=0)))
(i%400==0)) diasfebrero++;
dia++;
switch (mes) {
case (1): case (3);
case (5): case (7):
case (8):
case (10): if (dia>31) {
dia = 1;
mes++;
}
break
case (4): case (6):
case (9):
case (11): if (dia>30) {
dia = 1;
mes++;
}
break
case (12): if (dia>31){
dia = 1;
mes = 1;
año++;
}
break
default: if((dia>diasfebrero)) {
dia = 1;
mes++;
}
}
return dia+"/"+mes+"/"+año;
}
}
private String getDescription(){
return elDia.getText();
}
public boolean handleEvent (Event e){
if (e.target == hoy)
elDia.setText(GetHoy());
if (e.target == diasiguiente)
elDia.setText(GetMañana());
return super.handleEvent(e);
}
// TODO code application logic here
}
Respuesta
1
De momento he visto que se te ha olvidado el símbolo ";" en
Date d = new Date ()
Pero te aconsejo que para programar en java lo hagas con algún IDE que te señala los errores de compilación (y muchos más) sin tener que liarte buscando... además de que muchos te dice lo que tienes que hacer para solucionarlos. Personalmente, programar de otra forma me parece que puede acabar con tu cordura :)
Yo uso Eclipse ( http://www.eclipse.org/downloads/)  como IDE, mucha gente usa NETBEAS (http://netbeans.org/downloads/). Miralos y prueba el que más te gusta, son de libre distribución.

2 respuestas más de otros expertos

Respuesta
1
Prueba con el siguiente código dentro de un fichero "DiaPartida.java", en la carpeta "calendario" dentro de la carpeta de fuentes de tu aplicación.
No tengo instalada la máquina virtual 1.2 pero creo haber entendido lo que quieres hacer, y veo que utilizas métodos antiguos de la 1.2.
Los comentarios los tienes que comenzar por /* (con excepción de Javadoc,con /**).
La variable "i" he supuesto que era el año, y que querías calcular el bisiesto.
No utilices caracteres específicos de un encoding, como la "ñ" para nombres de métodos ("GetMañana").
Los métodos deberían comenzar por minúscula, como "GetMañana".
Y algunas cosillas más.
Si quieres tener un main, creas solamente, dentro de la clase DiaPartida un método main: public static void main(String[] args) {}, que instancie la clase DiaPartida con el constructor adecuado.
package calendario;
import java.util.*;
import java.awt.*;
/*
* @author Administrador
*/
public class DiaPartida extends Panel {
private TextField elDia;
private Button hoy;
private Button diasiguiente;
public DiaPartida() {
setLayout (new GridLayout (4,1));
elDia = new TextField();
elDia.setText(GetHoy());
hoy = new Button ("HOY");
diasiguiente = new Button("Mañana");
add (new Label("Dia salida :"));
add(elDia);
add (hoy);
add(diasiguiente);
}
private String GetHoy () {
Date d = new Date();
int dia = d.getDate();
int mes = d.getMonth();
int año = d.getYear();
return dia + "/" + mes + "/" + año;
}
private String GetManyana() {
Date d = new Date ();
int dia = d.getDate();
int mes = d.getMonth();
int anyo = d.getYear();
int diasfebrero = 28;
if (anyo%4 == 0)
{
diasfebrero++;
}
dia++;
switch (mes) {
case (1):
case (3):
case (5):
case (7):
case (8):
case (10):
if (dia>31) {
dia = 1;
mes++;
}
break;
case (4):
case (6):
case (9):
case (11):
if (dia>30) {
dia = 1;
mes++;
}
break;
case (12):
if (dia>31){
dia = 1;
mes = 1;
anyo++;
}
break;
default:
if((dia>diasfebrero)) {
dia = 1;
mes++;
}
}
return dia+"/"+mes+"/"+anyo;
}
private String getDescription(){
return elDia.getText();
}
public boolean handleEvent (Event e){
if (e.target == hoy)
elDia.setText(GetHoy());
if (e.target == diasiguiente)
elDia.setText(GetManyana());
return super.handleEvent(e);
}
}
Respuesta
1
Copia el código y en comentarios verás lo que añadí.
El código me quedó así:
import java.util.*;
import java.awt.*;
/*
* @author Administrador
*/
public class otrasTantas {
/* @param args the command line arguments //puse / antes de los * para que sean comentarios.
*/
public static void main(String[] args) {
class DiaPartida extends Panel {
private TextField elDia;
private Button hoy;
private Button diasiguiente;
DiaPartida() {
setLayout (new GridLayout (4,1));
elDia = new TextField();
elDia.setText(GetHoy());
hoy = new Button ("HOY");
diasiguiente = new Button("Mañana");
add (new Label("Dia salida :"));
add(elDia);
add (hoy);
add(diasiguiente);
}
private String GetHoy() { // los métodos deben tener parámetros, aunque estén vacíos. () incluí paréntesis
Date d = new Date(); //faltaba ;
int dia = d.getDate();
int mes = d.getMonth();
int año = d.getYear();
return dia+"/"+mes+"/"+año; //aqui se añade un +
}
private String GetMañana() {
Date d = new Date (); //faltaba ;
int dia = d.getDate();
int mes = d.getMonth();
int año = d.getYear();
int diasfebrero = 28;
int i = año; //agrego esto si no no tiene variable i que representa el año.
if (((i%4 == 0) && (i%100!=0)) || (i%400==0)) diasfebrero++; //aquí calculas si es
// Año bisiesto, por lo que debes incluir en paréntesis TODA la condición. Sería: es divisible entre 4 pero no entre 100 ó es
//divisible entre 400.
dia++;
switch (mes) {
case (1): case (3): //habías puesto ; en vez de :
case (5): case (7):
case (8):
case (10): if (dia>31) {
dia = 1;
mes++;
}
break; //faltaba ;
case (4): case (6):
case (9):
case (11): if (dia>30) {
dia = 1;
mes++;
}
break; //faltaba ;
case (12): if (dia>31){
dia = 1;
mes = 1;
año++;
}
break; //faltaba ;
default: if((dia>diasfebrero)) {
dia = 1;
mes++;
}
}
return dia+"/"+mes+"/"+año;
}
 //acá había una llave, cerraba la clase acá y debe ser más abajo
private String getDescription(){
return elDia.getText();
}
public boolean handleEvent (Event e){
if (e.target == hoy)
elDia.setText(GetHoy());
if (e.target == diasiguiente)
elDia.setText(GetMañana());
return super.handleEvent(e);
}
// TODO code application logic here
}}} //movida la llave hacia acá y agregué otra

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas