/* package whatever; // don't place package name! */
import java.text.SimpleDateFormat;
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.util.Map;
import java.util.TreeMap;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Set<MyDate> allDates = getAllDates();
Map
<String, Set
<MyDate
>> map
= new TreeMap
<>(); for (MyDate date : allDates) {
String key
= date.
getWeekStamp(); if (map.get(key) == null) {
map.put(key, new HashSet<MyDate>());
}
map.get(key).add(date);
}
printDates(map);
}
public static Set<MyDate> getAllDates() {
String dateFormat
= "MM/dd/yyyy"; "04/01/2015",
"04/02/2015",
"04/03/2015",
"04/04/2015",
"04/05/2015",
"04/06/2015",
"04/07/2015",
"04/08/2015",
"04/09/2015"};
Set<MyDate> dates = new HashSet<>(inputDates.length);
MyDate date = new MyDate(s, dateFormat);
dates.add(date);
}
return dates;
}
public static void printDates
(Map
<String, Set
<MyDate
>> map
) { int week = 0;
for (Set<MyDate> set : map.values()) {
week++;
System.
out.
println("Week : " + week
); for (MyDate date : set) {
System.
out.
println(date.
getDate()); }
}
}
private static class MyDate {
try {
Date date
= sdf.
parse(strDate
); cal.setTime(date);
}
}
}
public String getWeekStamp
() { }
return cal.getTime();
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwppbXBvcnQgamF2YS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7CmltcG9ydCBqYXZhLnRleHQuUGFyc2VFeGNlcHRpb247CgppbXBvcnQgamF2YS51dGlsLkNhbGVuZGFyOwppbXBvcnQgamF2YS51dGlsLkRhdGU7CmltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKaW1wb3J0IGphdmEudXRpbC5TZXQ7CmltcG9ydCBqYXZhLnV0aWwuTWFwOwppbXBvcnQgamF2YS51dGlsLlRyZWVNYXA7CgoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCSAgU2V0PE15RGF0ZT4gYWxsRGF0ZXMgPSBnZXRBbGxEYXRlcygpOwogICAgICBNYXA8U3RyaW5nLCBTZXQ8TXlEYXRlPj4gbWFwID0gbmV3IFRyZWVNYXA8PigpOwogICAgICBmb3IgKE15RGF0ZSBkYXRlIDogYWxsRGF0ZXMpIHsKICAgICAgICBTdHJpbmcga2V5ID0gZGF0ZS5nZXRXZWVrU3RhbXAoKTsKICAgICAgICBpZiAobWFwLmdldChrZXkpID09IG51bGwpIHsKICAgICAgICAgIG1hcC5wdXQoa2V5LCBuZXcgSGFzaFNldDxNeURhdGU+KCkpOwogICAgICAgIH0KICAgICAgICBtYXAuZ2V0KGtleSkuYWRkKGRhdGUpOwogICAgICB9CiAgICAgIHByaW50RGF0ZXMobWFwKTsKCX0KCQoJcHVibGljIHN0YXRpYyBTZXQ8TXlEYXRlPiBnZXRBbGxEYXRlcygpIHsKICAgICAgIFN0cmluZyBkYXRlRm9ybWF0ID0gIk1NL2RkL3l5eXkiOwogICAgICAgU3RyaW5nW10gaW5wdXREYXRlcyA9IHsKICAgICAgICAgICAiMDQvMDEvMjAxNSIsCiAgICAgICAgICAgIjA0LzAyLzIwMTUiLAogICAgICAgICAgICIwNC8wMy8yMDE1IiwKICAgICAgICAgICAiMDQvMDQvMjAxNSIsCiAgICAgICAgICAgIjA0LzA1LzIwMTUiLAogICAgICAgICAgICIwNC8wNi8yMDE1IiwKICAgICAgICAgICAiMDQvMDcvMjAxNSIsCiAgICAgICAgICAgIjA0LzA4LzIwMTUiLAogICAgICAgICAgICIwNC8wOS8yMDE1In07CiAgICAgICAgICAgCiAgICAgICBTZXQ8TXlEYXRlPiBkYXRlcyA9IG5ldyBIYXNoU2V0PD4oaW5wdXREYXRlcy5sZW5ndGgpOwogICAgICAgZm9yIChTdHJpbmcgcyA6IGlucHV0RGF0ZXMpIHsKICAgICAgICAgTXlEYXRlIGRhdGUgPSBuZXcgTXlEYXRlKHMsIGRhdGVGb3JtYXQpOwogICAgICAgICBkYXRlcy5hZGQoZGF0ZSk7CiAgICAgICB9CiAgICAgICByZXR1cm4gZGF0ZXM7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIHByaW50RGF0ZXMoTWFwPFN0cmluZywgU2V0PE15RGF0ZT4+IG1hcCkgewogICAgICAgaW50IHdlZWsgPSAwOwogICAgICAgZm9yIChTZXQ8TXlEYXRlPiBzZXQgOiBtYXAudmFsdWVzKCkpIHsKICAgICAgICAgIHdlZWsrKzsKICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV2VlayA6ICIgKyB3ZWVrKTsKICAgICAgICAgIGZvciAoTXlEYXRlIGRhdGUgOiBzZXQpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGRhdGUuZ2V0RGF0ZSgpKTsgIAogICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgcHJpdmF0ZSBzdGF0aWMgY2xhc3MgTXlEYXRlIHsKICAgICAgZmluYWwgQ2FsZW5kYXIgY2FsOwogICAgICAKICAgICAgcHVibGljIE15RGF0ZSAoU3RyaW5nIHN0ckRhdGUsIFN0cmluZyBkYXRlRm9ybWF0KSB7CiAgICAgICAgY2FsID0gQ2FsZW5kYXIuZ2V0SW5zdGFuY2UoKTsKICAgICAgICB0cnkgewogICAgICAgICAgU2ltcGxlRGF0ZUZvcm1hdCBzZGYgPSBuZXcgU2ltcGxlRGF0ZUZvcm1hdChkYXRlRm9ybWF0KTsKICAgICAgICAgIERhdGUgZGF0ZSA9IHNkZi5wYXJzZShzdHJEYXRlKTsKICAgICAgICAgIGNhbC5zZXRUaW1lKGRhdGUpOwogICAgICAgIH0KICAgICAgICBjYXRjaCAoUGFyc2VFeGNlcHRpb24gZSkgewogICAgICAgICAgdGhyb3cgbmV3IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbigiSW52YWxpZCBkYXRlICIgKyBzdHJEYXRlKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIHB1YmxpYyBTdHJpbmcgZ2V0V2Vla1N0YW1wKCkgewogICAgICAgIHJldHVybiBjYWwuZ2V0KENhbGVuZGFyLllFQVIpICsgIi0iICsgY2FsLmdldChDYWxlbmRhci5XRUVLX09GX1lFQVIpOwogICAgICB9CiAgICAgIAogICAgICBwdWJsaWMgRGF0ZSBnZXREYXRlKCkgewogICAgICAgIHJldHVybiBjYWwuZ2V0VGltZSgpOwogICAgICB9CiAgICB9CgkKfQ==