/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.*;
import java.time.format.*;
import java.time.temporal.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
// of(int year, int month, int dayOfMonth, int hour, int minute, int second, int nanoOfSecond, ZoneOffset offset)
OffsetDateTime odtStart1 = OffsetDateTime.of ( 2016 , 2 , 29 , 12 , 21 , 0 , 0 , ZoneOffset.UTC );
OffsetDateTime odtStop1 = OffsetDateTime.of ( 2016 , 3 , 1 , 12 , 21 , 0 , 0 , ZoneOffset.UTC );
Duration d1 = Duration.between ( odtStart1 , odtStop1 );
OffsetDateTime odtStart2 = OffsetDateTime.of ( 2016 , 4 , 30 , 12 , 21 , 0 , 0 , ZoneOffset.UTC );
OffsetDateTime odtStop2 = OffsetDateTime.of ( 2016 , 5 , 1 , 12 , 21 , 0 , 0 , ZoneOffset.UTC );
Duration d2 = Duration.between ( odtStart2 , odtStop2 );
Duration difference = d1.minus ( d2 );
System.
out.
println ( odtStart1
+ "/" + odtStop1
+ " = " + d1
); System.
out.
println ( odtStart2
+ "/" + odtStop2
+ " = " + d2
); System.
out.
println ( "difference.toString(): " + difference
);
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS50aW1lLio7CmltcG9ydCBqYXZhLnRpbWUuZm9ybWF0Lio7CmltcG9ydCBqYXZhLnRpbWUudGVtcG9yYWwuKjsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgogICAgICAgIC8vIG9mKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXlPZk1vbnRoLCBpbnQgaG91ciwgaW50IG1pbnV0ZSwgaW50IHNlY29uZCwgaW50IG5hbm9PZlNlY29uZCwgWm9uZU9mZnNldCBvZmZzZXQpCiAgICAgICAgT2Zmc2V0RGF0ZVRpbWUgb2R0U3RhcnQxID0gT2Zmc2V0RGF0ZVRpbWUub2YgKCAyMDE2ICwgMiAsIDI5ICwgMTIgLCAyMSAsIDAgLCAwICwgWm9uZU9mZnNldC5VVEMgKTsKICAgICAgICBPZmZzZXREYXRlVGltZSBvZHRTdG9wMSA9IE9mZnNldERhdGVUaW1lLm9mICggMjAxNiAsIDMgLCAxICwgMTIgLCAyMSAsIDAgLCAwICwgWm9uZU9mZnNldC5VVEMgKTsKICAgICAgICBEdXJhdGlvbiBkMSA9IER1cmF0aW9uLmJldHdlZW4gKCBvZHRTdGFydDEgLCBvZHRTdG9wMSApOwoKICAgICAgICBPZmZzZXREYXRlVGltZSBvZHRTdGFydDIgPSBPZmZzZXREYXRlVGltZS5vZiAoIDIwMTYgLCA0ICwgMzAgLCAxMiAsIDIxICwgMCAsIDAgLCBab25lT2Zmc2V0LlVUQyApOwogICAgICAgIE9mZnNldERhdGVUaW1lIG9kdFN0b3AyID0gT2Zmc2V0RGF0ZVRpbWUub2YgKCAyMDE2ICwgNSAsIDEgLCAxMiAsIDIxICwgMCAsIDAgLCBab25lT2Zmc2V0LlVUQyApOwogICAgICAgIER1cmF0aW9uIGQyID0gRHVyYXRpb24uYmV0d2VlbiAoIG9kdFN0YXJ0MiAsIG9kdFN0b3AyICk7CgogICAgICAgIER1cmF0aW9uIGRpZmZlcmVuY2UgPSBkMS5taW51cyAoIGQyICk7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiAoIG9kdFN0YXJ0MSArICIvIiArIG9kdFN0b3AxICsgIiA9ICIgKyBkMSApOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiAoIG9kdFN0YXJ0MiArICIvIiArIG9kdFN0b3AyICsgIiA9ICIgKyBkMiApOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbiAoICJkaWZmZXJlbmNlLnRvU3RyaW5nKCk6ICIgKyBkaWZmZXJlbmNlICk7CiAgICAgICAgCgl9Cn0=