Java: преобразовать данные о рождении в дни - PullRequest
0 голосов
/ 26 марта 2011

Мне действительно нужна помощь с конкретным заданием.Пользователь вводит данные о рождении (ГГГГ ММ ДД), и программа сообщает, сколько вам лет в днях:

Отпечаток в консоли будет

Вы, например, рождены в 1981 году 11 06

Вам 7068 дней.

Я переписал свой код, может быть, 20 раз, но безуспешно, и любая помощь будет очень признательна, я новичок, поэтому все будет полезно!заранее большое спасибо, Себастьян.

// код ... :) отредактировал .. я переписал код, так как он все равно не сработал, я повернул и повернул его, так что я полностью изменил его, номожет кто-нибудь сказать мне, почему DateFormat и Date date не работают Eclipse также дает мне ошибку на ParseException ..

Теперь он работает отлично!спасибо за поддержку!

Ответы [ 4 ]

1 голос
/ 26 марта 2011

Используйте класс 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)

EDIT: В соответствии с кодом, который вы перечислили ниже, вы должны просто сделать

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 голос
/ 26 марта 2011

Рассматривали ли вы Календарь класса ? Он имеет функции для разбора дат из строк и сравнения их.

0 голосов
/ 31 августа 2016

java.time

В Java 8 и более поздних версиях вы можете использовать классы java.time, такие как ChronoUnit и LocalDate.Возможно, не подходит для домашнего задания.

long days = ChronoUnit.DAYS.between( LocalDate.parse( "1981-11-06" ) , LocalDate.now( ZoneId.of( "America/Montreal" ) ) ) ;
0 голосов
/ 27 марта 2011

Что ж, когда я импортировал нужный класс, он работал просто отлично:

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

...