Created
October 23, 2014 15:19
-
-
Save gitzhou/53a3bae0e50aed933754 to your computer and use it in GitHub Desktop.
UserStatistics.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package cc.aaron67.test; | |
import java.util.ArrayList; | |
import java.util.List; | |
public class UserStatistics { | |
private static List<User> userList; | |
public static void main(String[] args) { | |
init(); | |
int start = 3, end = 11; | |
ArrayList<ArrayList<User>> list = new ArrayList<ArrayList<User>>(); | |
for (int i = 0; i < end - start; ++i) { | |
list.add(new ArrayList<User>()); | |
} | |
for (int i = 0; i < userList.size(); ++i) { | |
for (int j = 0; j < list.size(); ++j) { | |
String startTime = intToTime(start + j), endTime = intToTime(start + j + 1); | |
if (userList.get(i).loginTime.compareTo(startTime) >= 0 | |
&& userList.get(i).loginTime.compareTo(endTime) < 0 | |
|| userList.get(i).logoutTime.compareTo(startTime) > 0 | |
&& userList.get(i).logoutTime.compareTo(endTime) <= 0 | |
|| userList.get(i).loginTime.compareTo(startTime) < 0 | |
&& userList.get(i).logoutTime.compareTo(endTime) > 0 | |
|| userList.get(i).loginTime.compareTo(startTime) >= 0 | |
&& userList.get(i).logoutTime.compareTo(endTime) < 0) { | |
list.get(j).add(userList.get(i)); | |
} | |
} | |
} | |
int i = 0; | |
while (i < list.size()) { | |
int j = i + 1; | |
while (j < list.size() && list.get(i).equals(list.get(j))) { | |
++j; | |
} | |
if (list.get(i).size() != 0) { | |
System.out.println("[" + (start + i) + ", " + (start + j) + ") " | |
+ list.get(i).size()); | |
} | |
i = j; | |
} | |
System.out.println("-----------------"); | |
for (int k = 0; k < list.size(); ++k) { | |
System.out.print((start + k) + " ~ " + (start + k + 1) + ": "); | |
for (int j = 0; j < list.get(k).size(); ++j) { | |
System.out.print(list.get(k).get(j).name + " "); | |
} | |
System.out.println(); | |
} | |
} | |
private static void init() { | |
userList = new ArrayList<User>(); | |
userList.add(new User("A", "05:37", "09:01")); | |
userList.add(new User("B", "07:13", "08:00")); | |
userList.add(new User("C", "05:00", "07:00")); | |
} | |
private static String intToTime(int i) { | |
if (i / 10 == 0) { | |
return "0" + i + ":00"; | |
} else { | |
return i + ":00"; | |
} | |
} | |
} | |
class User { | |
public String name; | |
public String loginTime; | |
public String logoutTime; | |
User(String n, String login, String logout) { | |
name = n; | |
loginTime = login; | |
logoutTime = logout; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Great God Zhou is awesome~~