编程题3——日期转换
假设从控制台接收到一个字符中参数数据:
2022- 10- 05
将这个字符串转换为日期对象,并判断当前月份是否是张三生日所属月(6月) ,
如果是生日所属月,在判断今天是不是生日(6.1)
代码如下:
DateUtils
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
/**
*口期工具类
提供日期的转换、生目判断等功能*/
public class DateUtils {
//转换工具,仅支持2008-10-15类似格式的转换
public static final DateTimeFormatter FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static LocalDate parse(String dateString){
try {
LocalDate date = LocalDate.parse(dateString,FORMATTER);
return date;
} catch (Exception e) {
System.err.println("字符串格式不正确,无法转换");
}
return null;
}
/***判断给定日期是否今天过生日*/
public static boolean isBirthday(LocalDate date){
LocalDate now = LocalDate.now();
if (now.getMonthValue() == date.getMonthValue()){
if(now.getDayOfMonth() == date.getDayOfMonth()){
return true;
}
}
return false;
}
}
test
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateString = scanner.next();
LocalDate date = DateUtils.parse(dateString);
System.out.println(date);
boolean boo = DateUtils.isBirthday(date);
System.out.println("张三今天过生日吗?"+boo);
}
运行结果:
2020-10-05
2020-10-05
今天过生日吗?false
进程已结束,退出代码0