我有一个显示用户活动的 JSF 表。
<p:lineChart id="logins" value="#{StatisticsController.weekActivity}" legendPosition="e"
title="Weekly Logins" seriesColors="4D94FF, 1975FF, 005CE6, 0047B2" minY="0" maxY="200"/>
public class Statistics implements Serializable {
private CartesianChartModel weeksActivity;
public Statistics() {
createweeksActivity();
}
public CartesianChartModel getweekActivity() {
return weeksActivity;
}
private void createweeksActivity() {
weeksActivity = new CartesianChartModel();
ChartSeries boys = new ChartSeries();
boys.setLabel("Active Accounts");
boys.set("Monday", 120);
boys.set("Tuesday", 100);
boys.set("Wednesday", 44);
boys.set("Thursday", 150);
boys.set("Friday", 120);
boys.set("Saturday", 82);
boys.set("Sunday", 115);
ChartSeries girls = new ChartSeries();
girls.setLabel("Blocked Accounts");
girls.set("Monday", 52);
girls.set("Tuesday", 60);
girls.set("Wednesday", 110);
girls.set("Thursday", 135);
girls.set("Friday", 120);
girls.set("Saturday", 140);
girls.set("Saturday", 130);
girls.set("Sunday", 140);
weeksActivity.addSeries(boys);
weeksActivity.addSeries(girls);
}
}
我想按顺序显示当前日期。例如:现在我得到这个订单:Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
例如今天是星期三我想在打开网页时得到这个订单:
Thursday, Friday, Saturday, Sunday, Monday, Tuesday, Wednesday
我该如何解决这个问题?
EDIT:
我以这种方式更新了代码:
private void createweeksActivity()
{
weeksActivity = new CartesianChartModel();
ChartSeries activeAccounts = new ChartSeries();
activeAccounts.setLabel("Active Accounts");
ChartSeries blockedAccounts = new ChartSeries();
blockedAccounts.setLabel("Blocked Accounts");
GregorianCalendar calendar = new GregorianCalendar();
DateFormat df = new SimpleDateFormat("EEEE");
for (int i = 0; i < 7; i++)
{
calendar.add(Calendar.DATE, 1);
System.out.println(df.format(calendar.getTime()));
activeAccounts.set(df.format(calendar.getTime()), getNumberOfLogins(df.format(calendar.getTime())));
blockedAccounts.set(df.format(calendar.getTime()), getNumberOfLogins(df.format(calendar.getTime())));
}
weeksActivity.addSeries(activeAccounts);
weeksActivity.addSeries(blockedAccounts);
}
public int getNumberOfLogins(String day){
// Get here the number of logins using SQL command
// Example: SELECT * FROM HISTORY WHERE DAY = day;
return 100;
}
我想它会起作用的。