Código Java

import java.io.*; import java.util.*; public class Fecha{//Atributos de objeto int d; int m; int a; int s; static int c; //atributo de Clase public Fecha(){}; //Constructor vacio public Fecha(int d,int m,int a){//Constructor con tres atributos de objeto y uno de Clase this.d = d; this.m = m; this.a = a; c++; } public Fecha(int d,int m,int a, int s){//Constructor con cuatro atributos de objeto y uno de Clase this.d = d; this.m = m; this.a = a; this.s = s; c++; } public int getA(){return this.a;}//geters y seters public int getM(){return this.m;} public int getD(){return this.d;} public void setA(int a){this.a=a;} public void setM(int m){this.m=m;} public void setD(int d){this.d=d;} public boolean mayor(Fecha f){//método que compara fechas y ns dice si es mayor if(this.a > f.getA())return true; if(this.a== f.getA()&&this.m>f.getM())return true; if(this.a == f.getA()&&this.m==f.getM()&&this.d>f.getD())return true; else return false; } public boolean igual(Fecha f){ //método que compara fechas y nos dice si son iguales if(this.a == f.getA()&&this.m==f.getM()&&this.d==f.getD())return true; else return false; } public boolean menor(Fecha f){//método que compara fechas y ns dice si es menor if(this.a < f.getA())return true; if(this.a == f.getA()&&this.m=1582)&&(a%4==0&&a%100!=0)) || (a%400==0)|| (a%1000==0));devuelve = true; if((a<=1582)&&(a%4==0));devuelve = true; return devuelve; } public boolean correcta(){//método que nos dice si las fechas estan correctamente configuradas según meses, años bisiestos... if((getA() <1582)&&(getM()<1||getM()>12) &&(getD()<1 ||getD()>31)) return false; boolean correcta = false; switch(getM()){ case 2: if(bisiesto(getA())) correcta = getD()<=29; else correcta = getD()<=28; break; case 4: case 6: case 9: case 11: correcta = getD()<=30;break; default: correcta = true; break; } return correcta; } public static char lunaLlena(int c){ // método que nos dice cuando la luna está llena int lLl=(int) Math.floor((c+6)%29.5); char lL = (char)lLl; if( lL =='\u0000') lL='1'; else lL =' '; return lL; } String fichero = "fechaX.txt";//Phat del fichero //NodoStringD sec = new NodoStringD(sx,sm);36160 al 16 de julio de 622. 227117; public Fecha fecha(){//método que nos retorna una fecha tipo Fecha. int b = 0; Fecha fx= null; String sx =null; c=0; try{ PrintWriter pw = new PrintWriter(new File(fichero)); for(int a=1;a<=1581;a++){ for(int m=1;m<=12;m++){ if (a <1582&&bisiesto(a) && m==2)b=29; if (a <1582&&bisiesto(a)==false && m==2) b=28; if (a<1582 &&( m==4 || m==6||m==9||m==11))b=30; if (a<1582 &&( m==1 || m==3||m==5||m==7||m==8||m==10||m==12))b=31; for(int d=1;d<=b;d++){ fx = new Fecha(1,1,1); int s=diaSemana(); int lc = lunaLlena(c); sx=d+" "+m+" "+a+" \t "+s+" "+c+""+lunaLlena(c); pw.println(sx); } } } /**Al jueves -juliano- 4 de octubre de 1582 le sucedió el viernes -gregoriano- 15 de octubre de 1582. Así, diez días desaparecieron debido a que ya se habían contado de más en el calendario juliano.*/ for(int a=1582;a<=2500;a++){ for(int m=1;m<=12;m++){ if (a >=1582&&bisiesto(a) && m==2)b=29; if (a >=1582&&bisiesto(a)==false && m==2) b=28; if (a>=1582 &&( m==4 || m==6||m==9||m==11))b=30; if (a>=1582 &&( m==1 || m==3||m==5||m==7||m==8||m==10||m==12))b=31; for(int d=1;d<=b;d++){ fx = new Fecha(d,m,a); Fecha fechaPascua = null; int s= diaSemana(); if(a == 1582 && m == 10 && d == 5){ a = 1582; m = 10; d =15;} sx=d+" "+m+" "+a+" \t "+s+" "+c; pw.println(sx); } } } pw.close(); }catch (FileNotFoundException e){System.err.println("Problemas al abrir el fichero "+fichero); } return fx; } public boolean equals(Object o){ boolean devuelve; if( o instanceof Fecha && this.d ==((Fecha)o).getD() && this.m==((Fecha)o).getM() && this.a ==((Fecha)o).getA())devuelve= true; else devuelve =false; return devuelve; } public String toString(){ return this.d+"/"+this.m +"/"+this.a; } public String toString2(){ return ""+this.d+"/"+this.m + "/"+this.a+"\t"+diaSemana()+"\t"+c; } public String toString3(){ return ""+this.d+" "+this.m + " "+this.a+"\t"+diaSemana()+"\t"+c; } public static void main(String[] arg){ Fecha fecha = new Fecha(1,1,1); fecha.fecha();//método principal que arranca el código /* Scanner teclado =new Scanner(System.in).useLocale(Locale.US); System.out.println("Introduzca la fecha (digitos): dia "); int dia = teclado.nextInt(); System.out.println("Introduzca la fecha (digitos): mes "); int mes = teclado.nextInt(); System.out.println("Introduzca la fecha(digitos): año "); int año = teclado.nextInt(); Fecha f1 = new Fecha(dia,mes,año); System.out.println(f1.toString2());*/ } }

Comentarios