Calcula día de la semana con congruencia de Zeller
1. Ejercicio 8
Problema
8.- Escribe un programa que lea tres números día, mes y año que representan
una fecha (día, mes y año) y calcule el día de la semana correspondiente usando
la congruencia de Zeller:
diasem= (700 + (26mes - 2) DIV 10 + dia + a + a DIV 4 + b DIV 4 – 2b) MOD 7
Donde los valores son:
Si mes<=2 Si mes>=3
mes mes+10
anno-1
mes-2
a anno mod 100 anno mod 100
b anno div 100 anno div 100
El valor de la variable diaseman estará entre 0 y 6 (0 =domingo,1= lunes,
3=martes, 4=miércoles, 5=jueves, 6= viernes), imprima la fecha de entrada de
datos y sustituya el valor ordinal obtenido por el día en letras.
Análisis de datos
Se le pide al usuario que ingrese una fecha mediante un formato numérico, el
programa mediante la congruencia de Zeller arroja un valor numérico ordinal del
dia de la fecha otorgada.
2. Codificación
*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package dia.de.la.sem;
/**
*
* @author mike
*/
import javax.swing.*;
public class DiaDeLaSem {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int dia=Integer.parseInt(JOptionPane.showInputDialog(null, "dia en numero"));
int mes=Integer.parseInt(JOptionPane.showInputDialog(null, "mes en numero"));
int anno=Integer.parseInt(JOptionPane.showInputDialog(null, "año en numero"));
if (mes <= 2)
{
mes = mes + 10;
anno = anno - 1;
}
else
{
mes = mes - 2;
}
int a= anno % 100;
int b= anno / 100;
int diaordinal =(700 +((26 * mes -2) / 10) + dia + a+ a/ 4 + b/ 4 - 2 * b) % 7;
if(diaordinal==1)
JOptionPane.showMessageDialog(null,"dia ordinal obtenido LUNES");
if(diaordinal==2)
JOptionPane.showMessageDialog(null,"dia ordinal obtenido MARTES");
if(diaordinal==3)
JOptionPane.showMessageDialog(null,"dia ordinal obtenido MIERCOLES");
if(diaordinal==4)
JOptionPane.showMessageDialog(null,"dia ordinal obtenido JUEVES");
if(diaordinal==5)
JOptionPane.showMessageDialog(null,"dia ordinal obtenido VIERNES");
if(diaordinal==6)
JOptionPane.showMessageDialog(null,"dia ordinal obtenido SABADO");
if(diaordinal==7)
JOptionPane.showMessageDialog(null,"dia ordinal obtenido Domingo");
}
}