Java实现万年历

来源:互联网 发布:mac usb转接口驱动 编辑:程序博客网 时间:2024/04/30 13:04
package pricate.use;
import java.util.Scanner;
//万年历
public class TestUse2 {
 public  static  int year,weekDay;
public static void main(String[] args)throws Exception {
System.out.print("\t请输入一个年份:");
Scanner scn=new Scanner(System.in);
year=scn.nextInt();
weekDay=firstWeekOfYear(year);//计算这一年第一天星期几
       System.out.println("\n\t***"+year+"年***");
       showMonths();
}

public static boolean isLeapYear(int year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
return true;
else
return false;
}
public static int firstWeekOfYear(int year)//判断一年第一天星期几
{
long day=year*365;
for(int x=1;x<year;x++)
{
if(isLeapYear(x))
day+=1;
}
return (int)day%7;
}
public static int getMonthOfdays(int month)//获取某一月的天数
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:return 31;
case 4:
case 6:
case 9:
case 11:return 30;
case 2:
if(isLeapYear(year))
return 29;
else
return 28;
default:return 0;
}
}
public static void showMonths()//显示12个月的所有日期
{
for(int m=1;m<=12;m++)
{
System.out.println("\t**"+m+"月**");
System.out.println("SUN  MON  TUE  WED  THU  FRI  SAT");
for(int j=1;j<=weekDay;j++)//按照每周第一天星期几之前有几天
{
System.out.print("     ");
}
int monthDay=getMonthOfdays(m);//获取某一天的天数
for(int d=1;d<=monthDay;d++)
{
if(d<10)
System.out.print(" "+"0"+d+"  ");
else
System.out.print(" "+d+"  ");
weekDay=(weekDay+1)%7;//判断下一天星期几
if(weekDay==0)//如果下一天是星期日,则换行
System.out.println();
}
System.out.println();
}
}
}
0 0
原创粉丝点击