编写一个日期计算程序, 完成以下功能:
1)从键盘输入一个月份,在屏幕上输出本年这个月的月历,每星期一行,从星期
日开始,到星期六结束。
(2)从键盘输入一个日期,在屏幕上显示是星期几,也以当年为例。
(3)从键盘输入两个日期,计算这两个日期之间含有多少天。
package Calendar;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class CalendarDemo {
public static void main(String[] args) throws ParseException {
System.out.println("1.输出本年某月份月历");
System.out.println("2.输出指定日期为星期几");
System.out.println("3.输出两个日期之间有多少天");
System.out.println("--------------------------");
System.out.println("请输入序号(1~3)");
Scanner sc = new Scanner(System.in);
int key = sc.nextInt();
switch (key) {
case 1:
System.out.println("输出Menology");
Menology();
break;
case 2:
System.out.println("2.输出Day Of Week");
Week();
break;
case 3:
System.out.println("3.输出Days Between Two Dates");
Days();
break;
default:
break;
}
}
/*
从键盘输入一个月份,在屏幕上输出本年这个月的月历,每星期一行,从星期
日开始,到星期六结束。
*/
public static void Menology() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入要查看的月份(1~12)");
int month = sc.nextInt();
//获取Calendar对象
Calendar c = Calendar.getInstance();
//打印年份和设置的月份
System.out.println("您要查看的是"+c.get(Calendar.YEAR)+"年"+month+"月");
c.set(Calendar.MONTH, month-1);
c.set(Calendar.DAY_OF_MONTH, 1);
int n = c.get(Calendar.DAY_OF_WEEK);
System.out.println("日\t一\t二\t三\t四\t五\t六\t");
int num = c.getActualMaximum(Calendar.DAY_OF_MONTH);
int count=0;
for(int i =0;i<n-1;i++) {
System.out.print("\t");
count++;
}
for(int i =1;i<=num;i++) {
System.out.print(i+"\t");
count++;
if(count%7==0) {
System.out.println();
}
}
System.out.println();
}
/*
从键盘输入一个日期,在屏幕上显示是星期几,也以当年为例。
*/
public static void Week() throws ParseException {
String[] day ={"日","一","二","三","四","五","六"};
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要查找的日期 格式如:(2022-03-14)");
Date d = sdf.parse(sc.next());
System.out.println("星期"+day[d.getDay()]);
}
/*
(3)从键盘输入两个日期,计算这两个日期之间含有多少天。
*/
public static void Days() throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入日期 格式如:(2022-03-14)");
String date1 = sc.next();
String date2 = sc.next();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d1 = sdf.parse(date1);
Date d2 = sdf.parse(date2);
long days = ((d2.getTime()-d1.getTime())/1000/60/60/24);
System.out.println(date1+"和"+date2+"之间相差"+Math.abs(days)+"天");
}
}