Me piden esto: Dada una fecha, especificar los días transcurridos en el año. Por ejemplo, 30 de diciembre de 2006, debe devolver 364.
Mi codigo:
Código Java:
Ver original
/** * Clase que maneja fechas (dia,mes,a\u00f1o) * * @author Misael Saenz Flores * @version Octubre 2013 */ public class CFecha { //Atributos private int dia,mes,anio; /** * Contructor por omision * <br>Contructor que permite definir una fecha valida */ public CFecha() { dia = 1; mes = 1; anio = 1900; } public CFecha(int d, int m, int a) { if (esAnioBisiesto(a) && m == 2 && (d < 1 || d > 29)) { } if (m == 2 && (d < 1 || d > 28)) { } if (d < 0 || d > 31) { } if (a < 1800 || a > 3000) { } if (m > 12 || m < 1) { } dia = d; mes = m; anio = a; } if (esAnioBisiesto(a) && ms.equals("Febrero") && (d < 1 || d > 29)) { } if (ms.equals("Febrero") && (d < 1 || d > 28)) { } if (d < 0 || d > 31) { } if (a < 1800 || a > 3000) { } if (ms.equals("Diciembre") || ms.equals("Enero")) { nmes = ms; }else{ } if (ms.equals("Febrero") || ms.equals("Marzo")) { nmes = ms; }else{ } if (ms.equals("Abril") || ms.equals("Mayo")) { nmes = ms; }else{ } if (ms.equals("Junio") || ms.equals("Julio")) { nmes = ms; }else{ } if (ms.equals("Agosto") || ms.equals("Septiembre")) { nmes = ms; }else{ } if (ms.equals("Octubre") || ms.equals("Noviembre")) { nmes = ms; }else{ } dia = d; anio = a; } private boolean esAnioBisiesto(int a){ return (a%4 == 0 && a%1000!= 0 ) || a %400 == 0; } public CFecha(CFecha fecha){ this(fecha.obtenerDia(), fecha.obtenerMes(), fecha.obtenerAnio()); } public void asignarDia(int d){ if(esAnioBisiesto(d) && mes== 2 && ms.equals("Febrero") && (dia < 0 || dia > 29)){ }else if(mes == 2 && ms.equals("Febrero") && (dia < 0 || dia > 28)){ }else if (dia < 0 || dia > 31) else dia = d; } public void asignarMes(int m){ if (m < 0 || m > 12){ }else mes = m; } if (ms.equals("Diciembre") || ms.equals("Enero")) { nmes = ms; }else{ } if (ms.equals("Febrero") || ms.equals("Marzo")) { nmes = ms; }else{ } if (ms.equals("Abril") || ms.equals("Mayo")) { nmes = ms; }else{ } if (ms.equals("Junio") || ms.equals("Julio")) { nmes = ms; }else{ } if (ms.equals("Agosto") || ms.equals("Septiembre")) { nmes = ms; }else{ } if (ms.equals("Octubre") || ms.equals("Noviembre")) { nmes = ms; }else{ } } public void asignarAnio(int a){ if (a < 1800 || a > 3000){ }else anio = a; } public int obtenerDia(){ return dia; } public int obtenerMes(){ return mes; } return nmes; } public int obtenerAnio(){ return anio; } public int obtenerDiferencia(CFecha f){ if(mes == f.obtenerMes() && anio == f.obtenerAnio()){ }else{ return 0; } } public CFecha recorrerDias(CFecha f, int d){ f.asignarDia(f.obtenerDia() + d); return f; } CFecha f = (CFecha)obj; return dia == f.obtenerDia() && mes == f.obtenerMes() && anio == f.obtenerAnio(); } if (nmes.equalsIgnoreCase("Enero")){ return 1; } if (nmes.equalsIgnoreCase("Febrero")){ return 2; } if (nmes.equalsIgnoreCase("Marzo")){ return 3; } if (nmes.equalsIgnoreCase("Abril")){ return 4; } if (nmes.equalsIgnoreCase("Mayo")){ return 5; } if (nmes.equalsIgnoreCase("Junio")){ return 6; } if (nmes.equalsIgnoreCase("Julio")){ return 7; } if (nmes.equalsIgnoreCase("Agosto")){ return 8; } if (nmes.equalsIgnoreCase("Septiembre")){ return 9; } if (nmes.equalsIgnoreCase("Octubre")){ return 10; } if (nmes.equalsIgnoreCase("Noviembre")){ return 11; } if (nmes.equalsIgnoreCase("Diciembre")){ return 12; } return -1; } if(mes==1) return "Enero"; if(mes==2) return "Febrero"; if(mes==3) return "Marzo"; if(mes==4) return "Abril"; if(mes==5) return "Mayo"; if(mes==6) return "Junio"; if(mes==7) return "Julio"; if(mes==8) return "Agosto"; if(mes==9) return "Septiembre"; if(mes==10) return "Octubre"; if(mes==11) return "Noviembre"; if(mes==12) return "Diciembre"; return " "; } return dia +"/"+dameNombreMes(mes)+"/"+anio; } /** * * */ public int obtenerDiasTrans(CFecha f){ //......... } }