/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.time.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
System.
out.
println(numberOfWeekendContained
(LocalDate.
of(2016,
12,
2), LocalDate.
of(2016,
12,
24))); }
public static int numberOfWeekendContained(LocalDate start, LocalDate end) {
LocalDate firstMondayAfterStart = start.plusDays(8-start.getDayOfWeek().getValue());
LocalDate lastSundayBeforeEnd = end.minusDays(end.getDayOfWeek().getValue());
//int numberOfWeeksBetween = (int)Math.floor((Period.between(firstMondayAfterStart, lastSundayBeforeEnd).getDays() + 1) / 7);
int numberOfWeeksInbetween
= Math.
floorDiv(Period.
between(firstMondayAfterStart, lastSundayBeforeEnd
).
getDays() + 1,
7);
return
Math.
max(0,
Math.
min(2,
7 - start.
getDayOfWeek().
getValue())) + // weekend days from the start week Math.
max(0, end.
getDayOfWeek().
getValue() - 5) + // weekend days from the end week numberOfWeeksInbetween * 2; // weekend days from the weeks inbetween
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnRpbWUuKjsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJU3lzdGVtLm91dC5wcmludGxuKG51bWJlck9mV2Vla2VuZENvbnRhaW5lZChMb2NhbERhdGUub2YoMjAxNiwgMTIsIDIpLCBMb2NhbERhdGUub2YoMjAxNiwgMTIsIDI0KSkpOwoJfQoJCglwdWJsaWMgc3RhdGljIGludCBudW1iZXJPZldlZWtlbmRDb250YWluZWQoTG9jYWxEYXRlIHN0YXJ0LCBMb2NhbERhdGUgZW5kKSB7CgkJTG9jYWxEYXRlIGZpcnN0TW9uZGF5QWZ0ZXJTdGFydCA9IHN0YXJ0LnBsdXNEYXlzKDgtc3RhcnQuZ2V0RGF5T2ZXZWVrKCkuZ2V0VmFsdWUoKSk7CgkJTG9jYWxEYXRlIGxhc3RTdW5kYXlCZWZvcmVFbmQgPSBlbmQubWludXNEYXlzKGVuZC5nZXREYXlPZldlZWsoKS5nZXRWYWx1ZSgpKTsKCQkKCQkvL2ludCBudW1iZXJPZldlZWtzQmV0d2VlbiA9IChpbnQpTWF0aC5mbG9vcigoUGVyaW9kLmJldHdlZW4oZmlyc3RNb25kYXlBZnRlclN0YXJ0LCBsYXN0U3VuZGF5QmVmb3JlRW5kKS5nZXREYXlzKCkgKyAxKSAvIDcpOwoJCWludCBudW1iZXJPZldlZWtzSW5iZXR3ZWVuID0gTWF0aC5mbG9vckRpdihQZXJpb2QuYmV0d2VlbihmaXJzdE1vbmRheUFmdGVyU3RhcnQsIGxhc3RTdW5kYXlCZWZvcmVFbmQpLmdldERheXMoKSArIDEsIDcpOwoJCQoJCXJldHVybiAKCQkJTWF0aC5tYXgoMCwgTWF0aC5taW4oMiwgNyAtIHN0YXJ0LmdldERheU9mV2VlaygpLmdldFZhbHVlKCkpKSArCQkvLyB3ZWVrZW5kIGRheXMgZnJvbSB0aGUgc3RhcnQgd2VlawoJCQlNYXRoLm1heCgwLCBlbmQuZ2V0RGF5T2ZXZWVrKCkuZ2V0VmFsdWUoKSAtIDUpICsJCQkJCS8vIHdlZWtlbmQgZGF5cyBmcm9tIHRoZSBlbmQgd2VlawoJCQludW1iZXJPZldlZWtzSW5iZXR3ZWVuICogMjsJCQkJCQkJCQkJCS8vIHdlZWtlbmQgZGF5cyBmcm9tIHRoZSB3ZWVrcyBpbmJldHdlZW4KCQkKCX0KfQ==