java万年历代码

//雨泽编写
//2017年9月29日
//package pricate.use;
import java.util.Scanner;
//万年历
public class A {
 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
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值