Как добавить разницу двух дат к третьей дате в Java? - PullRequest
0 голосов
/ 27 июля 2011

Я новичок в Java, и я сделал поиск в Google и на этом форуме, но я все еще не уверен, что это хороший способ сделать это. (Время Joda не вариант для меня).

Date d1;
Date d2;
Date d3;
float a;

Что мне нужно сделать:

d3 + a - (d1 - d2);

Нужно ли мне получить миллисекунду между d1 и d2, а затем преобразовать d3 в календарь, чтобы добавить к нему миллисекунду?

Спасибо!

Редактировать: я должен был упомянуть, что число с плавающей запятой представляет количество минут, например а = 35,6 мин.

1 Ответ

4 голосов
/ 27 июля 2011

Это зависит от того, что вы подразумеваете под «разницей» - разница может иметь направление или быть абсолютной.

Если вы хотите добавить абсолютный разрыв, используйте это:

Date result = new Date(d3.getTime() + Math.abs(d2.getTime() - d1.getTime()));

Если вы заботитесь о том, чтобы d2 относился к d1 (т. Е. Если d2 равен до d1, то вы фактически вычитаете разрыв), тогда используйте:

Date result = new Date(d3.getTime() + d2.getTime() - d1.getTime());

РЕДАКТИРОВ.1013 * В ответ на комментарии да: если float a - это количество минут, вы можете дополнительно добавить a * 60000, чтобы получить новое длинное число миллисекунд и создать новую дату из этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...