import java.text.Format;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Hashtable;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class Main {
/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
String[] months = { "Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio",
"Giugno", "Luglio", "Agosto", "Settembre", "Ottobre",
"Novembre", "Dicembre" };
Calendar today = Calendar.getInstance();
Hashtable<String, Integer> table = new Hashtable<String, Integer>();
Format formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
for (int i = 0; i < 6; i++) {
String url = "http://forum.chatta.it/politica/"
+ today.get(Calendar.DAY_OF_MONTH) + "-"
+ months[today.get(Calendar.MONTH)] + "-"
+ today.get(Calendar.YEAR) + "/default.aspx";
System.out.println(url);
today.add(Calendar.DAY_OF_YEAR, -1);
for (String s : Page.getLink(url)) {
ArrayList<String[]> a = Page.scanPage(s);
for (String[] l : a) {
String time = l[1];
time = time.substring(0, 11) + time.substring(15);
Date d = (Date) formatter.parseObject(time);
Calendar cal = Calendar.getInstance();
cal.setTime(d);
if (cal.get(Calendar.HOUR_OF_DAY) > 8
&& cal.get(Calendar.HOUR_OF_DAY) < 18
&& cal.get(Calendar.DAY_OF_WEEK) != 1
&& cal.get(Calendar.DAY_OF_WEEK) != 7) {
if ("DriveAllNight".equals(l[0])) {
System.out.println( "[url]" + s + "[/url] " + d);
}
if (table.containsKey(l[0])) {
int count = table.get(l[0]);
table.put(l[0], ++count);
} else {
table.put(l[0], 1);
}
}
}
}
}
Map<String, Integer> sortedTable = sortByValue(table);
for (Entry<String, Integer> e : sortedTable.entrySet()) {
System.out.println(e.getKey() + " " + e.getValue());
}
}
public static Map<String, Integer> sortByValue(Map<String, Integer> map) {
List<Map.Entry<String, Integer>> list = new LinkedList<Map.Entry<String, Integer>>(
map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> m1,
Map.Entry<String, Integer> m2) {
return (m2.getValue()).compareTo(m1.getValue());
}
});
Map<String, Integer> result = new LinkedHashMap<String, Integer>();
for (Map.Entry<String, Integer> entry : list) {
result.put(entry.getKey(), entry.getValue());
}
return result;
}
}