1

わかりましたので、Log 10 (時間) の形式で時刻を表示し、同じ形式で分と秒を表示する時計を作成していましたが、これを実行すると奇妙な出力が得られます。私は主に NAN を取得し、時には無限大 (またはその負) を取得します。使用している数値に何か問題があるような気がします (数値が大きすぎるか、そのようなものかもしれません) 注: currentTime は long で、calendar は Calendar で、時、分、秒は double です。また、クロック変数は JLabel です。プログラムが 2 回繰り返された後は、常に NAN に切り替わります。

this.timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                new SwingWorker<Void, Void>() {
                    @Override
                    protected Void doInBackground() throws Exception {
                        currentTime = System.currentTimeMillis();
                        calendar.setTime(new Date(currentTime));
                        hour = Math.log10(hour);
                        minute = Math.log10(minute);
                        second = Math.log10(second);
                        System.out.println(hour + " " + minute + " " + second);
                        return null;
                    }

                    @Override
                    protected void done() {

                        clock.setText("<html><body><p>Log Time: "
                                + "Log<sub>10</sub>(" + hour + ") || "
                                + "Log<sub>10</sub>(" + minute + ") || "
                                + "Log<sub>10</sub>(" + second + ")</p></body></html>");
                    }
                }.execute();
            }
        }, 0, 200);

写真1 写真2

4

1 に答える 1

2

このコードはあまり意味がありません:

currentTime = System.currentTimeMillis();
calendar.setTime(new Date(currentTime));
hour = Math.log10(hour);
minute = Math.log10(minute);
second = Math.log10(second);

時間を設定していますcalendarが、完全に無視しています。次のようなものが必要になると思います。

currentTime = System.currentTimeMillis();
calendar.setTime(new Date(currentTime));
hour = Math.log10(calendar.get(Calendar.HOUR_OF_DAY));
minute = Math.log10(calendar.get(Calendar.MINUTE));
second = Math.log10(calendar.get(Calendar.SECOND));

編集: コメントに記載されているように、時、分、または秒が 0 のときに何をするかを検討する必要もあります (正直に言うと、ログベースの時計を最初に使用する理由は非常に不明です)。 .)

于 2013-07-31T08:12:18.307 に答える