java - 如果其他参数不起作用?

标签 java android if-statement jsoup

我遇到一个问题,其中 if else 参数仅执行最后一个参数之一。

我有这样的论点,如果条件在某个时间之间,那么 jsoup 应该解析一组数据,如果时间变量在时间集之外,那么 jsoup 应该解析另一组数据,但它始终只解析最后一组。

我看不出我在哪里犯了错误,但非常感谢任何有关可能原因的输入。

Calendar firstLimit= Calendar.getInstance();
firstLimit.set(Calendar.HOUR_OF_DAY, 18);
firstLimit.set(Calendar.MINUTE, 00);
firstLimit.set(Calendar.SECOND, 00);

Calendar secondLimit= Calendar.getInstance();
secondLimit.set(Calendar.HOUR_OF_DAY, 06);
secondLimit.set(Calendar.MINUTE, 00);
secondLimit.set(Calendar.SECOND, 00);

Calendar currentTime=Calendar.getInstance();

Document docWeather1;

try {
    //Current weather from Met Office
    Connection.Response response = Jsoup.connect("http://datapoint.metoffice.gov.uk/public/data/val/wxfcs/"
            + "all/xml/3604?res=daily&key=2dd5950b-91e1-4671-9d83-625f2ae9cbf5")
        .timeout(10000)
        .ignoreHttpErrors(true)
        .execute();

    int statusCode = response.statusCode();

    if(statusCode == 200) {
        String xml = Jsoup.connect("http://datapoint.metoffice.gov.uk/public/data/val/"
                + "wxfcs/all/xml/3604?res=daily&key=2dd5950b-91e1-4671-9d83-625f2ae9cbf5")
            .timeout(10000).get().toString();//Turns document into a string ready for parsing                       
        docWeather1 = Jsoup.parse(xml, "", Parser.xmlParser());

        if(currentTime.before(firstLimit) && currentTime.after(secondLimit)){

            String weatherType = docWeather1.select("Rep:eq(0)").first().attr("W");
            arr_data.add(weatherType);
            String tempDayMax = docWeather1.select("Rep:eq(0)").first().attr("Dm");
            arr_data.add(tempDayMax);
            String tempDayFeelLike = docWeather1.select("Rep:eq(0)").first().attr("FDm");
            arr_data.add(tempDayFeelLike);
            String windSpeed = docWeather1.select("Rep:eq(0)").first().attr("S");
            arr_data.add(windSpeed);
            String windDirection = docWeather1.select("Rep:eq(0)").first().attr("D");
            arr_data.add(windDirection);
            String pricipProb = docWeather1.select("Rep:eq(0)").first().attr("Ppd");
            arr_data.add(pricipProb);

            System.out.println("Current Weather Night Data Collected and Stored");
        } else {
            String xml1 = Jsoup.connect("http://datapoint.metoffice.gov.uk/public/data/val/"
                                        + "wxfcs/all/xml/3604?res=daily&key=2dd5950b-91e1-4671-9d83-625f2ae9cbf5").timeout(10000).get().toString();//Turns document into a string ready for parsing                     
            docWeather1 = Jsoup.parse(xml1, "", Parser.xmlParser());

            String weatherType = docWeather1.select("Rep:eq(1)").first().attr("W");
            arr_data.add(weatherType);
            String tempDayMax = docWeather1.select("Rep:eq(1)").first().attr("Dm");
            arr_data.add(tempDayMax);
            String tempDayFeelLike = docWeather1.select("Rep:eq(1)").first().attr("FDm");
            arr_data.add(tempDayFeelLike);
            String windSpeed = docWeather1.select("Rep:eq(1)").first().attr("S");
            arr_data.add(windSpeed);
            String windDirection = docWeather1.select("Rep:eq(1)").first().attr("D");
            arr_data.add(windDirection);
            String pricipProb = docWeather1.select("Rep:eq(1)").first().attr("Ppd");
            arr_data.add(pricipProb);

            System.out.println("Current Weather Data Day Collected and Stored");
        }}else{
        System.out.println("received error code : " + statusCode);
    }
} catch (IOException e) {
    e.printStackTrace();
}   

return arr_data;// return ArrayList from here

最佳答案

仅当您在上午 6 点到下午 6 点之间运行程序时,您的 if 语句才会返回 true 并从第一个 block 开始执行,因为您正在将当前时间与这些时间进行比较。尝试在白天运行该程序,您会得到不同的结果。如果这不是预期的功能,那么还有另一个问题。

关于java - 如果其他参数不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20152836/

相关文章:

android - onCreateOptionsMenu 未被调用

android - 在 textView 中显示短信并且不使用 Toast

java - 在各种平台上创建文件的常见位置(非用户特定)

时间:2019-03-08 标签:c#switch-typemultiplecase最佳实践

java - jQuery和Java之间的编码问题

java - POM文件配置是否会覆盖Spring Tool Suite配置的默认设置?

java - 如何卸载较新版本的java并安装较旧版本?

java - 如何在java中的自定义类型ArrayList上使用Contains?

Java - OR/AND 字符 (|| &&) 在 if 语句中是非法的

c++ - 相对于其数据朝特定方向移动的有效方法是什么?