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

【java】打印月历

2017-12-05 17:11 106 查看
已知1900年1月1日是星期一

输入年份月份,打印出日历

package exercise;
import java.util.*;
import java.lang.*;//Math.PI

public class test1{
public static void main(String[] args){
printYearAndMouth();
printTitle();
int sum=sumofyear()+sumofmouth();
sum++;
printContent(sum%7);

}
private static int year=-1;
private static int mouth=-1;
static int[] mouthday={31,28,31,30,31,30,31,31,30,31,30,31};
//用户输入年份月份
private static void printYearAndMouth(){
Scanner in= new Scanner(System.in);
System.out.print("请输入年份:");
year=in.nextInt();
System.out.print("请输入月份:");
mouth=in.nextInt();
}
//计算1900-year的天数
private static int sumofyear(){
int sum=0;
for(int i=1900;i<year;i++){
sum+=365;
if(isLeapYear(i))
sum+=1;
}
return sum;
}
private static boolean isLeapYear(int year){
return year%400==0||year%4==0&&year%100!=0;
}
//mouth前几个月的天数和
private static int sumofmouth(){
int sum=0;
for(int i=0;i<mouth-1;i++)
sum+=mouthday[i];
if(mouth>=3&&isLeapYear(year))
sum++;
return sum;
}
//显示标题和星期
private static void printTitle(){
String[] mouthof={"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"};
System.out.println("\t\t"+year+"\t\t"+mouthof[mouth-1]);
String[] week={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
for(int i=0;i<week.length;i++)
System.out.print(week[i]+"\t");
System.out.println();
}
//根据mouth第一天是星期几打印月份内容
private static void printContent(int day){
int step=0;//前面的空格
if(day==0)//星期日
step=6;
else
step=day-1;
for(int i=0;i<step;i++)
System.out.print("\t");
for(int i=0;i<mouthday[mouth-1];i++){
System.out.print(i+1);
if((day+i)%7!=0)
System.out.print("\t");
else
System.out.println();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: