Java:将出生数据转换为天数

我真的需要一些特定任务的帮助。 用户输入出生数据(YYYY MM DD),程序会告诉您几天的年龄:

控制台中的外印将是

你是出生于1981年11月06日

你今年7068天了。

我已经重写了我的代码可能20次没有成功,任何帮助都会非常感激,我有点新,所以一切都会有所帮助! 塞巴斯蒂安非常感谢。

//代码…… :)编辑..我重新破坏了代码,因为它无论如何我扭曲并转动它所以我完全改变它,但有人能告诉我为什么DateFormat和日期日期不起作用Eclipse是也给我ParseException错误..

它现在完美运作! 感谢所有支持!

你考虑过Calendar课程吗? 它具有从字符串中解析日期并比较它们的function。

使用DateFormat类,您可以在输入上使用.parse()。 这给你一个Date类,然后有.getTime(),它返回毫秒数。 然后创建一个新的Date类并减去.getTime()毫秒。 转换为天。

Date birth = DateFormat.parse(inputString); Date now = new Date(); long diff = now.getTime() - now.getTime(); int days = ((((diff / 1000) / 60) / 60) / 24) 

编辑:根据您下面列出的代码,您应该能够做到

 Scanner input=new Scanner(System.in); System.out.print ("Enter birth date (yyyy/mm/dd): "); String yourBirthDay=input.nextLine(); Date birth = DateFormat.parse(yourBirthDay); Date now = new Date(); long diff = now.getTime() - now.getTime(); int days = ((((diff / 1000) / 60) / 60) / 24) 

好吧,当我导入所需的类时,它运行得很好:

 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; 

Eclipse给你的错误可能是因为你没有导入正确的类。

一点提示:使用ctrl + shift + o在eclipse中添加缺少的导入

java.time

在Java 8及更高版本中,您可以使用诸如ChronoUnitLocalDate类的java.time类。 也许不适合做家庭作业。

 long days = ChronoUnit.DAYS.between( LocalDate.parse( "1981-11-06" ) , LocalDate.now( ZoneId.of( "America/Montreal" ) ) ) ;