给你个用界面录入的方法
- package com.heima.eclipse;
- import javax.swing.JOptionPane;
- public class DateTest {
- /**
- * @param args
- */
- //上面是非闰年的,下面是闰年的每个月的天数
- static int M[]={31,28,31,30,31,30,31,31,30,31,30,31};
- static int M1[]={31,29,31,30,31,30,31,31,30,31,30,31};
-
- static int year = 0;
- static int month = 0;
- static int day = 0;
- static int sum_day = 0;
-
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- String date=JOptionPane.showInputDialog(null,"请输入日期YYYY-MM-DD:","是星期几?",JOptionPane.PLAIN_MESSAGE);
-
- //2007-01-01是星期一,选择2007就是因为他的第一天是星期一。
- //先计算输入的日期和2007年1月1日的差距天数
-
- //将输入的信息的年月日信息提取出来
- String arr[] = date.split("-");
- year = Integer.parseInt(arr[0]);
- month = Integer.parseInt(arr[1]);
- day = Integer.parseInt(arr[2]);
-
- //如果是2007年之后的
- if(year>2007)
- {
- int i;
- for(i=2007;i<year;i++)
- {
- if(check(i))
- sum_day += 366;
- else sum_day += 365;
- }
- comCurYear(year,0);
- }
- else if(year==2007)
- {
- comCurYear(year,0);
- }
- else//2007年之前的
- {
- int i;
- for(i=2006;i>year;i--)
- {
- if(check(i))
- sum_day += 366;
- else sum_day += 365;
- }
- comCurYear(year,1);
- }
- //由于只有7个我就全部输出来了。没有用数组来判断。
- int temp = sum_day%7;
- if(temp==1)
- JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期一");
- if(temp==2)
- JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期二");
- if(temp==3)
- JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期三");
- if(temp==4)
- JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期四");
- if(temp==5)
- JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期五");
- if(temp==6)
- JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期六");
- if(temp==0)
- JOptionPane.showMessageDialog(null,year+"年"+month+"月"+day+"日是星期日");
- }
-
- //检验一年是不是闰年
- public static boolean check(int Y)
- {
- if(Y%400==0) return true;
- else if(Y%4==0&&Y%100!=0) return true;
- else return false;
- }
- public static void comCurYear(int Y,int flag)
- {
- int year_flag=0;
- if(check(Y)) year_flag=1;
-
- int k;
- if(flag==0)//year>=2007
- {
- for(k=1;k<=12;k++)
- {
- if(k<month)
- {
- if(year_flag==1) //闰年
- {
- sum_day += M1[k-1];
- }
- else sum_day += M[k-1];
- }
- else if(k==month) sum_day += day;
- else if(k>month) break;
- }
- }
- if(flag==1)//year<2007
- {
- for(k=12;k>=1;k--)
- {
- if(k>month)
- {
- if(year_flag==1) //闰年
- {
- sum_day += M1[k-1];
- }
- else sum_day += M[k-1];
- }
- else if(k==month) //闰年
- {
- if(year_flag==1)
- {
- sum_day += M1[k-1]-day;
- }
- else sum_day += M[k-1]-day;
- }
- else if(k<month) break;
- }
- //下面两句话是对2007之前的年做一个处理,比如相差5天,其实是应该不是星期5而是星期2
- int temp = sum_day%7;
- sum_day = sum_day-temp + 7-temp;
- }
- return ;
- }
- }
复制代码 |