От php до Java — mktime и дата

Я пытаюсь изменить сценарий PHP на Java, но я застрял в этих двух строках кода. Кто-нибудь знает, что такое эквивалентный код?

$Menarche = mktime(2, 0, 0, $Month, $Dday, $Year);
$DueDate = $Menarche + 86400*(280 + ($MCL - 28));

0

Решение

Вам просто нужно создать LocalDateTime из данных. Это представление определенной даты и времени, но без часового пояса.

final int month = 11;
final int day = 5;
final int year = 1605;

final LocalDateTime localDateTime = LocalDateTime.of(year, month, day, 2, 0, 0);

Теперь, чтобы напечатать это, мы можем использовать DateTimeFormatter:

final DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME;
System.out.printf("A date to remember: %s%n", localDateTime.format(formatter));

Выход:

Дата, чтобы помнить: 1605-11-05T02: 00: 00

Чтобы сделать арифметику с LocalDateTime мы можем просто использовать из многих plusXXX методы, например, с использованием месяцев:

final LocalDateTime dueDate = localDateTime.plusMonths(9);
System.out.printf("Nine months later: %s%n", dueDate.format(formatter));

Выход:

Дата, чтобы помнить: 1606-08-05T02: 00: 00

Или, если у нас есть точная продолжительность — мы не можем использовать месяцы, потому что они «оценены» — вы можете создать Duration:

final Duration gestation = Duration.ofDays(280);
final LocalDateTime dueDate = localDateTime.plus(gestation);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]