プログラムにエラーはありませんが、コードが正しく動作しません。私が時計の数字の間を引くと、それは間違っています。減算がクロック数の間に間違った結果をもたらすのはなぜですか?
たとえば、 15:00から18:00の間を差し引くと、結果は3:00ではなく12:00になります。
EDIT:新しいバグを発見しました。 15:00といつでも比較すると、結果は毎回12です。問題は他にもあるかもしれません。 (のインスタンス、15:00-16:00 = 12または15:00-19:00 = 12)
(また、私はクロックのためのGitHubからのライブラリを使用する。)
private String startTime = "";
@Bind(R.id.circle_seek_bar)
CircleSeekBar mSeekBar;
List<Item> messages = new ArrayList<>();
private Date finishing, starting;
private long difference, a, b;
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
public void restart() {
mSeekBar.setIsSetStart(false);
if (isAddMessage) {
messages.add(new Item(startTime,
mSeekBar.getCurrent()));
startTime = mSeekBar.getCurrent();
try {
finishing = format.parse(startTime);
b = finishing.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
isAddMessage = false;
} else {
if (isFirst) {
mSeekBar.initInvaildStartAngle();
isFirst = false;
startTime = mSeekBar.getCurrent();
try {
starting =format.parse((mSeekBar.getCurrent()));
a = starting.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
} else {
isAddMessage = true;
difference = a-b;
int minutes = (int) ((difference/(1000 * 60)) % 60);
int hours = (int) ((difference/(1000 * 60 * 60)) % 24) - 1;
text.setText((hours + ":" + minutes));
// text.setText(Integer.toString((int) difference));
}
に
TimeUnit
を使用してこのコードを考えてみましょう。*どのようなクロック? GitHubにはいくつのライブラリがあるのか知っていますか? – shmoselそれを伝えることが重要かどうかは分かりませんでした。私はこれを使用します:https://github.com/DuanTzXavier/conciseclock @shmosel –
あなたは 'Date'と' SimpleDateFormat'を使用しています* x *ミリ秒の時間と分を計算するためのロジックを単純に並べ替える必要があります。 「差分」に含まれる –