import javax.swing.*;
import java.lang.*;
public class Wanyear
{
    public static void main(String[] args)
    {
    String input=JOptionPane.showInputDialog
    ("Please Enter the year");
        
    int year=Integer.parseInt(input);
    
    String input1=JOptionPane.showInputDialog
    ("Please Enter the Month");
        
    int m=Integer.parseInt(input1);
    
    
    String input2=JOptionPane.showInputDialog
    ("Please Enter the Day");
        
    int d=Integer.parseInt(input2);
    
        
    String Nyear=Integer.toString(year);    String Sc=Nyear.substring(0,1);
    String Sy=Nyear.substring(2,3);
    
    int c=Integer.parseInt(Sc);
    int y=Integer.parseInt(Sy);
    
    if(m<3){
    year--;
    m+=12;}
    
    else
    c--;
        
    
    int w=(c/4)-(2*c)+y+(y/4)+(13*(m+1)/5)+d-1;
    int result=0;
    
    if(w>=0)
    result=w%7;
    else
    result=(w+700)%7;
    
    switch(result)
    {
        case 0: System.out.println("SUN"); break;
        case 1: System.out.println("MON"); break;
        case 2: System.out.println("TUE"); break;
        case 3: System.out.println("WED"); break;
        case 4: System.out.println("THU"); break;
        case 5: System.out.println("FRI"); break;
        case 6: System.out.println("SAT"); break;
    }
    
        
    }
}
参考算法: 不查日历怎么知道任何一天是星期几(zt)
发表:2004-5-7 10:41:14  出处:你的博客网(yourblog.org)
最常见的公式:W = [Y-1] + [(Y-1)/4] - [(Y-1)/100] + [(Y-1)/400] + DY是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。  最好用的是蔡勒公式:W = [C/4] - 2C + y + [y/4] + [13 * (M+1) / 5] + d - 1