import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
public class Main {
public static void main
(String[] args
) { Duration result = calculateTimeDifference("-2", "2023-07-16");
System.
out.
println("Time Difference Calculated : " + result
); // You can get time units separately as well
System.
out.
printf("%d hours, %d minutes%n", result.
toHoursPart(), result.
toMinutesPart()); }
static Duration calculateTimeDifference
(String hotelOffset,
String CheckInDt
) { LocalDateTime nowInNY = LocalDateTime.now(ZoneId.of("America/New_York"));
// Convert hotel's timezone offset string to minutes
int offsetValue
= Integer.
parseInt(hotelOffset
); int offsetInMinutes = offsetValue * 30;
LocalDateTime nowAtHotel = nowInNY.plusMinutes(offsetInMinutes);
LocalDateTime checkInDateTime = LocalDate.parse(CheckInDt)
.atTime(LocalTime.of(15, 0));
return Duration.between(nowAtHotel, checkInDateTime);
}
}
aW1wb3J0IGphdmEudGltZS5EdXJhdGlvbjsKaW1wb3J0IGphdmEudGltZS5Mb2NhbERhdGU7CmltcG9ydCBqYXZhLnRpbWUuTG9jYWxEYXRlVGltZTsKaW1wb3J0IGphdmEudGltZS5Mb2NhbFRpbWU7CmltcG9ydCBqYXZhLnRpbWUuWm9uZUlkOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIER1cmF0aW9uIHJlc3VsdCA9IGNhbGN1bGF0ZVRpbWVEaWZmZXJlbmNlKCItMiIsICIyMDIzLTA3LTE2Iik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaW1lIERpZmZlcmVuY2UgQ2FsY3VsYXRlZCA6ICIgKyByZXN1bHQpOwogICAgICAgIC8vIFlvdSBjYW4gZ2V0IHRpbWUgdW5pdHMgc2VwYXJhdGVseSBhcyB3ZWxsCiAgICAgICAgU3lzdGVtLm91dC5wcmludGYoIiVkIGhvdXJzLCAlZCBtaW51dGVzJW4iLCByZXN1bHQudG9Ib3Vyc1BhcnQoKSwgcmVzdWx0LnRvTWludXRlc1BhcnQoKSk7CiAgICB9CgogICAgc3RhdGljIER1cmF0aW9uIGNhbGN1bGF0ZVRpbWVEaWZmZXJlbmNlKFN0cmluZyBob3RlbE9mZnNldCwgU3RyaW5nIENoZWNrSW5EdCkgewogICAgICAgIExvY2FsRGF0ZVRpbWUgbm93SW5OWSA9IExvY2FsRGF0ZVRpbWUubm93KFpvbmVJZC5vZigiQW1lcmljYS9OZXdfWW9yayIpKTsKCiAgICAgICAgLy8gQ29udmVydCBob3RlbCdzIHRpbWV6b25lIG9mZnNldCBzdHJpbmcgdG8gbWludXRlcwogICAgICAgIGludCBvZmZzZXRWYWx1ZSA9IEludGVnZXIucGFyc2VJbnQoaG90ZWxPZmZzZXQpOwogICAgICAgIGludCBvZmZzZXRJbk1pbnV0ZXMgPSBvZmZzZXRWYWx1ZSAqIDMwOwoKICAgICAgICBMb2NhbERhdGVUaW1lIG5vd0F0SG90ZWwgPSBub3dJbk5ZLnBsdXNNaW51dGVzKG9mZnNldEluTWludXRlcyk7CgogICAgICAgIExvY2FsRGF0ZVRpbWUgY2hlY2tJbkRhdGVUaW1lID0gTG9jYWxEYXRlLnBhcnNlKENoZWNrSW5EdCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYXRUaW1lKExvY2FsVGltZS5vZigxNSwgMCkpOwoKICAgICAgICByZXR1cm4gRHVyYXRpb24uYmV0d2Vlbihub3dBdEhvdGVsLCBjaGVja0luRGF0ZVRpbWUpOwogICAgfQp9