/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.*;
import java.time.temporal.*;
import java.time.format.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// For `Europe/Amsterdam`, when local standard time was about to reach
// Sunday, March 26, 2017, 2:00:00 am clocks were turned forward 1 hour to
// Sunday, March 26, 2017, 3:00:00 am local daylight time instead.
LocalDate march26 = LocalDate.of ( 2017, Month.MARCH, 26 );
LocalTime twoAm = LocalTime.of ( 2, 0 );
ZoneId z = ZoneId.of ( "Europe/Amsterdam" );
ZonedDateTime start = march26.atStartOfDay ( z );
ZonedDateTime stop = ZonedDateTime.of ( march26, twoAm, z );
long minutes = ChronoUnit.MINUTES.between ( start, stop );
Duration duration = Duration.between ( start, stop );
long durationAsMinutes = duration.toMinutes ( );
int minuteOfDay = stop.get ( ChronoField.MINUTE_OF_DAY );
System.
out.
println ( "start: " + start
); System.
out.
println ( "stop: " + stop
); System.
out.
println ( "minutes: " + minutes
); System.
out.
println ( "FYI: 4 * 60 = " + ( 4 * 60 ) + " | 3 * 60 = " + ( 3 * 60 ) + " | 2 * 60 = " + ( 2 * 60 ) ); System.
out.
println ( "duration.toString(): " + duration
+ " | durationAsMinutes: " + durationAsMinutes
); System.
out.
println ( "minuteOfDay: " + minuteOfDay
);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLio7CmltcG9ydCBqYXZhLnRpbWUudGVtcG9yYWwuKjsKaW1wb3J0IGphdmEudGltZS5mb3JtYXQuKjsKCgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoKICAgICAgICAvLyBGb3IgYEV1cm9wZS9BbXN0ZXJkYW1gLCB3aGVuIGxvY2FsIHN0YW5kYXJkIHRpbWUgd2FzIGFib3V0IHRvIHJlYWNoCiAgICAgICAgLy8gU3VuZGF5LCBNYXJjaCAyNiwgMjAxNywgMjowMDowMCBhbSBjbG9ja3Mgd2VyZSB0dXJuZWQgZm9yd2FyZCAxIGhvdXIgdG8KICAgICAgICAvLyBTdW5kYXksIE1hcmNoIDI2LCAyMDE3LCAzOjAwOjAwIGFtIGxvY2FsIGRheWxpZ2h0IHRpbWUgaW5zdGVhZC4KCiAgICAgICAgTG9jYWxEYXRlIG1hcmNoMjYgPSBMb2NhbERhdGUub2YgKCAyMDE3LCBNb250aC5NQVJDSCwgMjYgKTsKICAgICAgICBMb2NhbFRpbWUgdHdvQW0gPSBMb2NhbFRpbWUub2YgKCAyLCAwICk7CiAgICAgICAgWm9uZUlkIHogPSBab25lSWQub2YgKCAiRXVyb3BlL0Ftc3RlcmRhbSIgKTsKICAgICAgICBab25lZERhdGVUaW1lIHN0YXJ0ID0gbWFyY2gyNi5hdFN0YXJ0T2ZEYXkgKCB6ICk7CiAgICAgICAgWm9uZWREYXRlVGltZSBzdG9wID0gWm9uZWREYXRlVGltZS5vZiAoIG1hcmNoMjYsIHR3b0FtLCB6ICk7CiAgICAgICAgbG9uZyBtaW51dGVzID0gQ2hyb25vVW5pdC5NSU5VVEVTLmJldHdlZW4gKCBzdGFydCwgc3RvcCApOwogICAgICAgIER1cmF0aW9uIGR1cmF0aW9uID0gRHVyYXRpb24uYmV0d2VlbiAoIHN0YXJ0LCBzdG9wICk7CiAgICAgICAgbG9uZyBkdXJhdGlvbkFzTWludXRlcyA9IGR1cmF0aW9uLnRvTWludXRlcyAoICk7CiAgICAgICAgaW50IG1pbnV0ZU9mRGF5ID0gc3RvcC5nZXQgKCBDaHJvbm9GaWVsZC5NSU5VVEVfT0ZfREFZICk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiAoICJzdGFydDogIiArIHN0YXJ0ICk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuICggInN0b3A6ICIgKyBzdG9wICk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuICggIm1pbnV0ZXM6ICIgKyBtaW51dGVzICk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuICggIkZZSTogNCAqIDYwID0gIiArICggNCAqIDYwICkgKyAiIHwgMyAqIDYwID0gIiArICggMyAqIDYwICkgKyAiIHwgMiAqIDYwID0gIiArICggMiAqIDYwICkgKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4gKCAiZHVyYXRpb24udG9TdHJpbmcoKTogIiArIGR1cmF0aW9uICsgIiB8IGR1cmF0aW9uQXNNaW51dGVzOiAiICsgZHVyYXRpb25Bc01pbnV0ZXMgKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4gKCAibWludXRlT2ZEYXk6ICIgKyBtaW51dGVPZkRheSApOwoKCX0KfQ==