0

totalTime の取得に関して、ここで多くの回答を読みました。見つけたこのコードを自分のコードに適用しようとしました:

long secs = (dateFormatter.format(now2) - dateFormatter.format(now1)) / 1000;
int hours = secs / 3600;
secs = secs % 3600;
int mins = secs / 60;
secs = secs % 60;

私のコード:

 public void actionPerformed(ActionEvent e)
 {
 LogicalChecker lc = new LogicalChecker();
 Date now1 = new Date();
 Date now2 = new Date();
 cobadatabase cb = new cobadatabase(studNumTF.getText());
 String output;

  if(e.getActionCommand() == "Log In")
    {
        if(station == 0)
        {
            lc.StationCheck(0);
        }
        else if(seatOccupied[station-1] == true)
        {
            lc.StationCheck(2);
        }
        else if(!studNumTF.getText().equals(cb.getStudentNumber()))
        {
             studNumTF.setText("");
             lc.StationCheck(3); 
        }
        else
        {
            seatOccupied[station-1] = true;


                Aid[station-1].setText(cb.getStudentNumber());
                Afirstname[station-1].setText(cb.getFirstName());
                Alastname[station-1].setText(cb.getLastName());  
                seat[station-1].setBackground(Color.red);
                Atime[station-1].setText(dateFormatter.format(now1));
                occupiedSeatCounter++;


        }
    }

  if(e.getActionCommand() == "Log Out")
    {
        if(station == 0)
        {
            lc.StationCheck(0);
        }
        else if(Aid[station-1].getText() == "Vacant Station")
        {
            lc.StationCheck(1);
        }
        else
        {

            Aid[station-1].setText("Vacant Station");
            Afirstname[station-1].setText("---------");
            Alastname[station-1].setText("---------");
            seat[station-1].setBackground(Color.green);
            Atime[station-1].setText("00:00:00");
            seatOccupied[station-1] = false;
            studNumTF.setText("");
            output = "Time Check-Out "+dateFormatter.format(now2)+"\n Total Time: ";
            JOptionPane.showMessageDialog(null,output, "Check-Out.",JOptionPane.INFORMATION_MESSAGE);

        }
}

}

ただし、演​​算子を java.lang.String に適用できないというエラーが表示されます。合計時間を取得して、作成した JOptionPane に表示するにはどうすればよいかわかりません。本当に助けが必要です。

4

1 に答える 1

1

あなたの問題はここにあります:dateFormatter.format(now2) - dateFormatter.format(now1)@Luiggiが言ったように、フォーマットは文字列を返すからです。次のようなことを行う必要があります:now2.getTime() - now1.getTime()ミリ秒単位で差を取得します。

于 2012-10-07T22:03:32.153 に答える