我正在尝试做一个待办事项列表,并且每当用户选中一个复选框时,它都会在对应的日期中添加对/错。问题是firebase不能对字符串进行日期排序,因此经过一些研究,我发现我必须使用timeInMillis,但是Firebase不允许除Strings之外的其他键...
这就是我检索日期的方式。
library(tidyverse)
library(scales)
df <- data.frame(var_X = runif(1000,0,1), var_Y = runif(1000,0,200))
p<-ggplot(df, aes(df$var_X,df$var_Y)) +
geom_bin2d(aes(fill = stat(count/max(count)))) +
scale_x_continuous(trans=log_trans(), breaks=c(100,150, 200, 250)) +
ylim(c(0, 200)) +
scale_fill_gradientn(colours = jet.colors(7))
p
答案 0 :(得分:0)
所以我设法做到了,这就是我的做法... 首先,您必须将毫秒数设为整数,为此我创建了此方法:
public String[] getPreviousFiveDays() {
Calendar cal = Calendar.getInstance();
String dates[] = new String[5];
cal.add(Calendar.DAY_OF_MONTH, 0 );
dates[0] = cal.getTimeInMillis()+"";
for (int i = 1; i < 5; i++){
cal.add(Calendar.DAY_OF_MONTH,-1);
dates[i] = cal.getTimeInMillis()+"";
}
return dates;
}
然后,因为我想保存和修改日期,所以我在对象上创建了一个HashMap。
private Map<String, Boolean> mChecks;
public Map<String, Boolean> getChecks() {
return mChecks;
}
public void setChecks(Map<String, Boolean> checks) {
mChecks = checks;
}
然后在选中CheckBox时修改日期,我检索了这样的键(由于我只使用了最后五个键,所以我只检索了这些键):
mChecks = new TreeMap<>(habitos.getChecks());
List<Map.Entry<String, Boolean>> entryList =
new ArrayList<>(mChecks.entrySet());
for (int x=0; x<5; x++) {
int y = 1 + x;
Map.Entry<String, Boolean> entry =
entryList.get(entryList.size() - y);
mDays[x] = entry.getKey();
}