从控制台输入年、月、日,打印本月日历,用*标示输入的日期

来源:互联网 发布:java实现des加密算法 编辑:程序博客网 时间:2024/04/28 15:43


package com.crystal.day_3_22;


import java.util.Calendar;
import java.util.Scanner;


public class Calender {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入年份:");
int year = input.nextInt();
System.out.print("请输入月份:");
int month = input.nextInt();
System.out.print("请输入日期:");
int day = input.nextInt();


// 创建日期对象
Calendar cal = Calendar.getInstance();

                //Calendar类是抽象类,无法实例化,要得到该类对象只能通过调用getInstance方法来获得

                //Calendar.getInstance();返回默认地区和时期的Calendar对象
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, month - 1);
                //void set(int field,int value)将value中指定的值设置到field指定的部分


// 确定本月有几天
cal.set(Calendar.DATE, 1);
cal.roll(Calendar.DATE, -1);

                //cal.roll日期回滚:先设置当前是本月的第一天再回滚-1就是本月的最后一天
int numDays = cal.get(Calendar.DATE);

                //int get(int field)返回调用对象中fields指定部分的值


// 确定第一天是一周的第几天
cal.set(Calendar.DATE, 1);
int n = cal.get(Calendar.DAY_OF_WEEK);


// 打印周日到周六
System.out.println();
System.out.println("\t\t  "+year+"年"+month+"月");
System.out.print("周日\t周一\t周二\t周三\t周四\t周五\t周六");
System.out.println();
for (int i = 1; i <= n - 1; i++) {
System.out.print("\t");
}
for (int i = 1; i <= numDays; i++) {
if (i == day) {
System.out.print(i + "*\t");
} else {
System.out.print(i + "\t");
if ((i + n - 1) % 7 == 0) {
System.out.println();
}
}


}
input.close();
}
}




0 0
原创粉丝点击