【问题标题】:Java: convert birth data to daysJava:将出生数据转换为天数
【发布时间】:2011-03-26 01:35:54
【问题描述】:

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

控制台中的输出是

例如你出生于 1981 年 11 月 06 日

你已经 7068 天了。

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

//代码... :) 已编辑...工作 Eclipse 也给我 ParseException 错误..

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

【问题讨论】:

  • 如果是作业,您应该添加作业标签。
  • 请向我们展示您的尝试,并解释它如何未能达到您想要的效果。

标签: java days


【解决方案1】:

你考虑过Calendar class吗?它具有从字符串中解析日期并进行比较的功能。

【讨论】:

  • 如果这是一个课堂作业,我怀疑这是允许的。
  • @Aidanc - 可能是...用于入门编程课程的作业。
  • @Aidanc,除非有特别列出的限制条件,否则 IMO 是公平的游戏。日期类是否也被排除在外?如果是这样,你怎么知道当前日期?是否排除了 String 类?等
【解决方案2】:

使用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)

【讨论】:

  • 这只是一个入门编程课程,我已经学习了大约 1 个半星期的 java,我卡在这里。
  • 老师建议我们用公历,但是任何日历都可以,但是它也可以计算闰年(每4年2月有29天)
  • @Subastian:希望这会有所帮助:)
  • @Sebastian:a) 抱歉在上面拼错了你的名字,b) Date 类确实考虑了闰年。
  • 好吧,但是我写的代码有点大,我不知道如何实现你们介绍给我的这个新日历,有人认为他们可以看到我的代码并帮助我弄清楚吗?
【解决方案3】:

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

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

【讨论】:

    【解决方案4】:

    java.time

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2014-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多