小编Zac*_*ach的帖子

找到java中两个(Joda Time)DateTime对象之间的确切差异

我有两个日期(其中一个是现在),需要找到两者之间的差异.我的代码给了我糟糕的输出(有时甚至是负面的).

我已经尝试过使用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)

java date jodatime difference

5
推荐指数
1
解决办法
3629
查看次数

尝试从 <String> 数组列表中删除罗马数字和数字

我正在尝试删除诸如“我”之类的东西。“二。” “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)

java arrays numbers list

2
推荐指数
1
解决办法
3873
查看次数

查找和计算大写字母

我写了一个方法来检查大写字母的字符串,如果它发现一个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)

java string methods replace

0
推荐指数
1
解决办法
292
查看次数

标签 统计

java ×3

arrays ×1

date ×1

difference ×1

jodatime ×1

list ×1

methods ×1

numbers ×1

replace ×1

string ×1