【java】打印月历

来源:互联网 发布:mac怎么批量删除文件 编辑:程序博客网 时间:2024/06/04 19:31

已知1900年1月1日是星期一

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

package exercise;import java.util.*;import java.lang.*;//Math.PIpublic 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;elsestep=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");elseSystem.out.println();}}}