-1

我真的需要一些关于具体任务的帮助。用户输入出生数据(YYYY MM DD),程序会告诉您您的年龄(以天为单位):

控制台中的输出将是

例如,您出生于 1981 年 11 月 06 日

你7068天了。

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

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

它现在完美运行!感谢大家的支持!

4

4 回答 4

1

您是否考虑过Calendar 课程?它具有从字符串中解析日期并进行比较的功能。

于 2011-03-26T01:59:53.630 回答
1

使用可以在输入中使用 .parse()的DateFormat类。它为您提供了一个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)
于 2011-03-26T02:05:19.747 回答
0

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

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 中添加缺失的导入

于 2011-03-27T02:51:15.977 回答
0

java.time

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

long days = ChronoUnit.DAYS.between( LocalDate.parse( "1981-11-06" ) , LocalDate.now( ZoneId.of( "America/Montreal" ) ) ) ;
于 2016-08-31T18:25:25.957 回答