控制台输出指定年份、月份的日历。
最近在看Java的日期类,所以我写了一个简单的日历,但是并没有用到任何日期类,就是简单的控制语句输出,下面我直接贴代码。
public class Demo02 {
//日历实现
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();
System.out.println("请输入月份:");
int month = sc.nextInt();
int total = 0;
int day = 0;
//把前year年的天数加上
for (int i = 1900; i < year; i++) {
if((i%4==0 && i%100!=0)||i%400==0){
total += 366;
}else
total +=365;
}
for (int i = 1; i <= month; i++) {
switch (i){
case 2:
//判断当前月数是否是闰年
day = ((year%4==0&&year%100!=0)||year%400==0?29:28);
break;
case 4,6,9,11:
day = 30;
break;
default:
day = 31;
break;
}
//把前month月的天数加上
if(i<month) total += day;
}
//计算输入的1号是星期几,这里total已经记录到上个月为止的天数了
int weekOfFirstDay = (total+1)%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 1; i <= weekOfFirstDay; i++) {
System.out.print("\t");
}
for (int i = 1; i <= day; i++) {
System.out.print(i+"\t");
if((total+i)%7==6)
System.out.println();
}
}
}
下面是控制台输出结果