它始终处于“其他”状态。 (TimePicker)

时间:2018-08-10 05:27:37

标签: java android

早上好!

1)我正在尝试比较两个时间选择器,但效果不佳。 它始终提供与-else

相同的选项
int firstHouer =fromTimePicker.getCurrentHour();
int firstdMinute =fromTimePicker.getCurrentMinute();
int seccoundHouer = fromTimePicker.getCurrentHour();
int seccoundMinute =fromTimePicker.getCurrentMinute();

       if (firstHouer + firstdMinute < seccoundHouer + seccoundMinute) 
       {
              Toast toast = Toast.makeText(getApplicationContext(), "B" , Toast.LENGTH_LONG);
              toast.show();
       }
       else
       {
              Toast toast = Toast.makeText(getApplicationContext(), "A" , Toast.LENGTH_LONG);
              toast.show();
       }

2)当我放置“:”符号时,我还有另一个问题,文字改变了方向

pic of the problem

2 个答案:

答案 0 :(得分:2)

如果要比较24小时的相对时间,则应将小时和分钟分量都转换为相同单位,然后进行比较。例如,要使用分钟来比较两者:

int firstHouer = fromTimePicker.getHour();     // getCurrentHour() is deprecated
int firstdMinute = fromTimePicker.getMinute(); // getCurrentMinute() is deprecated
int seccoundHouer = toTimePicker.getHour();    // or whatever it is called
int seccoundMinute = toTimePicker.getMinute(); // or whatever it is called

if (60*firstHouer + firstdMinute < 60*seccoundHouer + seccoundMinute) {
    Toast toast = Toast.makeText(getApplicationContext(), "B" , Toast.LENGTH_LONG);
    toast.show();
}
else {
    Toast toast = Toast.makeText(getApplicationContext(), "A" , Toast.LENGTH_LONG);
    toast.show();
}

编辑:正如@Dennis所指出的那样,您的代码中也有一个错字,并且两组时间都使用相同的TimePicker,这可能不是您想要的。

答案 1 :(得分:1)

您正在一次又一次地确定小时和分钟。
执行是如此之快(慢速运行的机器),值几乎不会改变,仅在一分钟(或一小时)的切换时就可以了,但是在这种情况下,由于Tim在他的答案)。

如果您经常尝试使用代码,则您迟早会准确地达到在同一小时内第一个分钟的分钟数不同于第二个分钟的钟点的目的。然后您将点击then部分。