程序填空题:判断两个日期的先后,计算间隔天数、周数
从键盘输入两个日期,格式如:2022-06-18。判断两个日期的先后,并输出它们之间间隔的天数、周数(不足一周按0计算)。
**输入样例1:**
2000-02-18
2000-03-15
**输出样例1:**
第一个日期比第二个日期更早
两个日期间隔26天
两个日期间隔3周
预备知识:通过查询Java API文档,了解Scanner类中nextLine()等方法、String类中split()等方法、Integer类中parseInt()等方法的用法,了解LocalDate类中of()、isAfter()、isBefore()、until()等方法的使用规则,了解ChronoUnit类中DAYS、WEEKS、MONTHS等单位的用法。
Java
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = ;
String s1 = sc.nextLine();
String s2 = sc.nextLine();
String [] dateStr1 = s1.split("-");
String [] dateStr2 = s2.split("-");
int year1 = Integer.parseInt( dateStr1[0] );
int month1 = Integer.parseInt( dateStr1[1] );
int day1 = ;
int year2 = Integer.parseInt( dateStr2[0] );
int month2 = Integer.parseInt( dateStr2[1] );
int day2 = Integer.parseInt( dateStr2[2] );
LocalDate date1 = LocalDate.of(year1, month1, day1);
LocalDate date2 = ;
if( )
System.out.println("第一个日期比第二个日期更早");
else
System.out.println("第一个日期比第二个日期更晚");
long dayCount = ;
long weekCount = date1.until(date2, ChronoUnit.WEEKS);
System.out.println("两个日期间隔" + Math.abs(dayCount) + "天" );
System.out.println("两个日期间隔" + Math.abs(weekCount) + "周" );
sc.close();
}
}
答案:
第1空:new Scanner(System.in)
第2空:Integer.parseInt( dateStr1[2] )
第3空:LocalDate.of(year2, month2, day2)
第4空:date1.isBefore(date2)
第5空:date1.until(date2, ChronoUnit.DAYS)
**输入样例1:**
2000-02-18
2000-03-15
**输出样例1:**
第一个日期比第二个日期更早
两个日期间隔26天
两个日期间隔3周
预备知识:通过查询Java API文档,了解Scanner类中nextLine()等方法、String类中split()等方法、Integer类中parseInt()等方法的用法,了解LocalDate类中of()、isAfter()、isBefore()、until()等方法的使用规则,了解ChronoUnit类中DAYS、WEEKS、MONTHS等单位的用法。
Java
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = ;
String s1 = sc.nextLine();
String s2 = sc.nextLine();
String [] dateStr1 = s1.split("-");
String [] dateStr2 = s2.split("-");
int year1 = Integer.parseInt( dateStr1[0] );
int month1 = Integer.parseInt( dateStr1[1] );
int day1 = ;
int year2 = Integer.parseInt( dateStr2[0] );
int month2 = Integer.parseInt( dateStr2[1] );
int day2 = Integer.parseInt( dateStr2[2] );
LocalDate date1 = LocalDate.of(year1, month1, day1);
LocalDate date2 = ;
if( )
System.out.println("第一个日期比第二个日期更早");
else
System.out.println("第一个日期比第二个日期更晚");
long dayCount = ;
long weekCount = date1.until(date2, ChronoUnit.WEEKS);
System.out.println("两个日期间隔" + Math.abs(dayCount) + "天" );
System.out.println("两个日期间隔" + Math.abs(weekCount) + "周" );
sc.close();
}
}
答案:
第1空:new Scanner(System.in)
第2空:Integer.parseInt( dateStr1[2] )
第3空:LocalDate.of(year2, month2, day2)
第4空:date1.isBefore(date2)
第5空:date1.until(date2, ChronoUnit.DAYS)