您的位置:首页 > 编程语言 > Java开发

Java打印万年历

2016-03-13 00:10 513 查看
①计算1900年1月1日之前的总天数

②计算输入月份的天数(比如输入5,应计算1-4月的总天数)

③星期几计算:1+总天数%7 \t

④每行输入7个

完成万年历完整代码如下:

import java.util.Scanner;
public class Calendars{
public static void main(String []argas)
{
Scanner input=new Scanner(System.in);
int year;//年份
int month;//月份
int days=0;//天
boolean isRn;//用于判断是否是闰年,true为闰年,false为平年
int totalDays=0;
System.out.println("******************使用万年历******************");
System.out.println("请输入年份");
year=input.nextInt();
System.out.println("请输入月份");
month=input.nextInt();
//判断是否是闰年
if((year%400==0)||(year%4==0&&year%100!=0))
{
isRn=true;
System.out.println(year+"年是闰年");
}
else
{
isRn=false;
System.out.println(year+"年是平年");
}
//计算年的总天数
for(int i=1900;i<year;i++)
{
if((i%400==0)||(i%4==0&&i%100!=0))
{
totalDays+=366;
}
else
{
totalDays+=365;
}
}
//计算输入月份之前的天数之和
for(int i=1;i<=month;i++)
{
switch(i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 2:
if(isRn)
{
days=29;
}
else
{
days=28;
}
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
default:
System.out.print("输入的月份有误");
break;
}
//输入月的天数保存到days中,但不累加
if(i!=month)
{
totalDays+=days;
}
}

//求出星期几,就是前面\t的个数
int beforeDays;
beforeDays=1+totalDays%7;
if(beforeDays==7)
{
beforeDays=0;//代表星期天,0个\t
}
System.out.println("星期天\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
//先打印\t
for(int i=0;i<beforeDays;i++)
{
System.out.print("\t");
}

for(int i=1;i<=days;i++)
{
System.out.print(i+"\t");
//满7个换行
if((i+beforeDays)%7==0)
{
System.out.println();
}
}

//System.out.print(year+"年"+month+"月共有"+days+"天");

}
}


(来自博客园)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: