package com.ustc.dystu.dandelion.bean;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.Locale;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.text.TextUtils;
public class NoteInfo implements Serializable {
public String note_id;
public String note_uid;
public String note_title;
public String note_time_from;
public String note_time_to;
public String note_location;
public String note_folder_url;
public int note_is_suggest;
public String[] weiboIds;
public String note_create_at;// 以秒为单位
public UserInfo userIno;
public static ArrayList<NoteInfo> create(JSONArray array)
throws JSONException {
ArrayList<NoteInfo> list = new ArrayList<NoteInfo>();
NoteInfo info;
for (int i = 0; i < array.length(); i++) {
JSONObject jo = (JSONObject) array.get(i);
info = create(jo);
list.add(info);
}
return list;
}
public static NoteInfo create(JSONObject jo) throws JSONException {
NoteInfo info = new NoteInfo();
info.note_id = jo.getString("note_id");
info.note_uid = jo.getString("note_uid");
info.note_title = jo.getString("note_title");
// info.note_time = jo.getString("note_time");
info.note_location = jo.getString("note_location");
info.note_folder_url = jo.getString("note_folder_url");
info.note_is_suggest = jo.getInt("note_is_suggest");
String weibo_ids = jo.optString("weibo_ids");
info.weiboIds = getIds(weibo_ids);
info.note_time_from = jo.getString("note_time_from");
info.note_time_to = jo.getString("note_time_to");
info.note_create_at = jo.getString("note_create_at");
return info;
}
private static String[] getIds(String ids) {
try {
if (!TextUtils.isEmpty(ids) && !ids.equals("[]")) {
ids = ids.substring(1, ids.length() - 1);
String[] str = ids.split(",");
if (str != null) {
for (int i = 0; i < str.length; i++) {
str[i] = str[i].substring(1, str[i].length() - 1);
}
}
return str;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static final SimpleDateFormat sDateFormat = new SimpleDateFormat(
"yyyy.MM.dd", Locale.CHINA);
public String getFormatNoteFromTime() {
if (!TextUtils.isEmpty(note_time_from)) {
long from = Long.parseLong(note_time_from);
Date before = new Date(from);
return sDateFormat.format(before);
}
return "";
}
public String getTotalDays() {
if (!TextUtils.isEmpty(note_time_from)
&& !TextUtils.isEmpty(note_time_to)) {
long from = Long.parseLong(note_time_from);
long to = Long.parseLong(note_time_to);
Date before = new Date(from);
Date after = new Date(to);
return getTotalDays(before, after) + "天";
}
return "";
}
public int getTotalDays(Date before, Date after) {
if (before.equals(after)) {
return 1;
}
String f = sDateFormat.format(before);
String c = sDateFormat.format(after);
try {
Date first = sDateFormat.parse(f);
Date current = sDateFormat.parse(c);
double day = current.getTime() - first.getTime();
day = day / 1000 / 60 / 60 / 24;
if (day > 0 && day < 1 && (current.getDate() != first.getDate())) {
day++;
}
day++;
return (int) day;
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
}
@Override
public boolean equals(Object o) {
if (o == null) {
return false;
}
if (o instanceof NoteInfo) {
NoteInfo info = (NoteInfo) o;
return info.note_id.equals(this.note_id);
} else {
return false;
}
}
@Override
public int hashCode() {
return note_id.hashCode();
}
public static Comparator<NoteInfo> comparator = new Comparator<NoteInfo>() {
@Override
public int compare(NoteInfo lhs, NoteInfo rhs) {
long ltime = Long.parseLong(lhs.note_create_at);
long rtime = Long.parseLong(rhs.note_create_at);
int delta = (int) (rtime - ltime);
return delta;
}
};
public String getFirstLocation() {
if (!TextUtils.isEmpty(note_location)) {
int i = note_location.indexOf(",");
if (i > 0) {
String str = note_location.substring(0, i);
return subLocation(str);
}
}
return subLocation(note_location);
}
public static String subLocation(String location) {
if (location != null) {
try {
location = location.replace("中国", "");
int startIndex = location.indexOf("省");
if (startIndex < 0) {
startIndex = location.indexOf("自治区");
if (startIndex > 0) {
startIndex += 3;
} else {
startIndex = 0;
}
} else {
startIndex++;
}
int index = location.indexOf("市");
if (index < 0) {
index = location.indexOf("自治州");
if (index > 0) {
index += 2;
}
}
if (index > 0) {
location = location.substring(startIndex, index + 1);
}
return location;
} catch (Exception e) {
e.printStackTrace();
}
}
return "";
}
}