我有两个日期(其中一个是现在),需要找到两者之间的差异.我的代码给了我糟糕的输出(有时甚至是负面的).
我已经尝试过使用Months,Days,Seconds,Hours和Years类,并且在没有运气的方法之间使用.
编辑:返回原始代码,但没有持续时间.@Basil Bourque发布了一个很好的解决方案,但我对Periods/Duration以及从它们动态格式化的所有方面都没有足够的经验.
解
public static String formattedTime(DateTime d){
DateTime present = new DateTime(Calendar.getInstance());
//dont really want to deal with WHY its 7hrs ahead. o well
DateTime date = d.minusHours(7);
int diff = Seconds.secondsBetween(date,present).getSeconds();
String postfix = "s";
Log.i("time", "" + diff);
if(diff>59){
diff = Minutes.minutesBetween(date, present).getMinutes();
postfix = "s";
if(diff>59){
diff = Hours.hoursBetween(date, present).getHours();
postfix = "hr";
if(diff>1)
postfix+="s";
if(diff>23){
diff = Days.daysBetween(date, present).getDays();
postfix = "d";
if(diff>6){
diff = Weeks.weeksBetween(date, present).getWeeks();
postfix = "wk";
if(diff>1)
postfix+="s";
if(diff>3){ …Run Code Online (Sandbox Code Playgroud) 我正在尝试删除诸如“我”之类的东西。“二。” “279”(页码和章节)等来自故事“罗宾汉”的文本文件。到目前为止我不知道如何摆脱数字(是arraylist一个字符串)
for (int x = 0; x < list.size(); x++) {
if (list.get(x).equalsIgnoreCase("I.") || list.get(x).equalsIgnoreCase("II.") || list.get(x).equalsIgnoreCase("III.") || list.get(x).equals("IV.") || list.get(x).equals("V.") || list.get(x).equalsIgnoreCase("VI.") || list.get(x).equalsIgnoreCase("VII.") || list.get(x).equalsIgnoreCase("VIII.") || list.get(x).equals("IX.") || list.get(x).equals("X.") || list.get(x).equals("XI.") || list.get(x).equalsIgnoreCase("XII.") || list.get(x).equalsIgnoreCase("XIII.") || list.get(x).equalsIgnoreCase("XIV.") || list.get(x).equalsIgnoreCase("XV.") || list.get(x).equalsIgnoreCase("XVI.") || list.get(x).equalsIgnoreCase("XVII.") || list.get(x).equalsIgnoreCase("XVIII.") || list.get(x).equalsIgnoreCase("XIX.") || list.get(x).equalsIgnoreCase("XX.") || list.get(x).equalsIgnoreCase("XXI.")) {
list.remove(x);
numWords--;
}
for (int y = 0; y < 9; y++) {
if (list.get(x) == y) {
list.remove(x);
numWords--;
}
}
} …Run Code Online (Sandbox Code Playgroud) 我写了一个方法来检查大写字母的字符串,如果它发现一个int计数增加1.但是当我测试方法时,我被告知不允许除以0.它不应该是0 ..任何人都可以解释这个吗?
public final boolean findIfCaps(String msg)
{
int count=0;
msg = msg.replaceAll("\\W","");
for(int x=0;x<msg.length();x++){
if(Character.isUpperCase(msg.charAt(x)))
count++;
}
double percent = count/msg.length();
if(percent>0.5)
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)