Nombre: calendario en java
Descripción:
calendario hecho en bluej
URL: http://www.mygnet.net/codigos/java/varios/calendario_en_java.3141
Código Fuente:
public class Calendario
{
//codigo para calcular si un año es bisciesto
public static boolean EsBisciesto(int año){
return ((año % 4 == 0 && año % 100 != 0) || año % 400 == 0);
}
public static void main (String[] args){
// codigo para imprimir error en pantalla si escribe mal
if (args.length !=2) {
System.out.println("uso:escribir mes y año");
System.exit(1);
}
int MES = Integer.parseInt(args[0]);
int AÑO = Integer.parseInt(args[1]);
String[] meses = {"",
"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "julio", " Agosto",
"septiembre", "Octubbre", "Nobiembre", "Diciembre"};
int[] dias = {0,31,28,31,30,31,31,30,31,30,31,30,31};
// si el año es bisciesto en febreo se ponen 29 dias
if(MES == 2 && EsBisciesto(AÑO)) dias[MES] = 29;
System.out.println(" D L M Mi J V S ");
int d = dow (MES, 1, AÑO);
// me imprime en pantalla los dias comenzando desde uno en el dia de la semana
//el cual es calculado con dow(dia de la semana)
for(int i = 0; i < d; i++)
System.out.print("...");
for(int i = 1; i <= dias[MES]; i++){
System.out.printf("%2d ", i);
if((i + d) % 7 == 0 || i == dias[MES])
System.out.println();
}
}
public static int dow(int MES, int DIA, int AÑO){
int y = AÑO - (14 -MES)/12;
int x = y + y/4 - y/100 + y/400;
int m = MES + 12*((14 -MES) / 12) - 2;
int d = (DIA + x + (31 * m) / 12) % 7;
return d;
}
}