Code biểu diễn các loại đồng hồ bấm giờ bị sai

Em làm rất kỹ nhưng vẫn ko hiểu vấn đề nằm ở đâu để mà sửa? Mong anh chị giúp em.

Dùng phương pháp lập trình hướng đối tượng, hãy giải quyết bài toán sau đây:

Bài: Thiết kế một lớp có tên là StopWatch để biểu diễn cho các loại đồng hồ bấm giờ. Import một package có tên là java.time.LocalTime có chứa các lớp để biểu diễn thời gian. Các thành phần dữ liệu và xử lý của lớp StopWatch được mô tả như sau:

  • Các thuộc tính dùng riêng startTime và endTime thuộc kiểu LocalTime
  • Các phương thức cho phép lấy giá trị của các thuộc tính dùng riêng
  • Phương thức khởi tạo không tham số thiết lập giá trị cho startTime là thời điểm hiện tại (dùng hàm LocalTime.now() để lấy thời điểm hiện tại)
  • Xây dựng phương thức start() có chức năng reset giá trị của startTime về thời điểm hiện tại
  • Xây dựng phương thức stop() có chức năng reset giá trị của stopTime về thời điểm hiện tại
  • Xây dựng phương thức getElapsedTime() để trả về số mili-giây thời gian đã trôi qua tính từ thời điểm bắt đầu (startTime) cho đến thời điểm kết thúc (endTime)

Xây dựng một đối tượng có tên là stopWatch trong hàm main() của chương trình. Reset startTime của stopWatch về thời điểm hiện tại. Sau đó, chạy một vòng for từ 1 đến 1 triệu và xuất ra câu thông báo “Kiểm tra thời gian”. Sau khi vòng for kết thúc, dừng đồng hồ bấm giờ (reset stopTime của stopWatch về thời điểm hiện tại), và in ra màn hình số mili-giây thời gian đã trôi qua.

import java.time.LocalTime;
    import java.time.temporal.Temporal;

public class StopWatch {
  private LocalTime startTime;
  private LocalTime endTime;

  public LocalTime getStartTime(LocalTime startTime) {
    return startTime;
  }
  public LocalTime getEndTime(LocalTime endTime) {
    return endTime;
  }
  StopWatch(){
    startTime= LocalTime.now();
  }
  public void start(){
    this.startTime= LocalTime.now();
    getStartTime(startTime);
  }
  public void stop(){
    this.endTime= LocalTime.now();
    getEndTime(endTime);
  }
  public void getElapsedTime() {
    int ElaspedTime = (startTime.toSecondOfDay() - endTime.toSecondOfDay()) * 100;
    System.out.println("Số mili giây đếm đc:" + ElaspedTime);
  }
  public static void main(String[] args){
    StopWatch stopWatch= new StopWatch();
    stopWatch.start();
    System.out.println("Đang đếm thời gian");
    for (int i=1;1<=1000000;i++)
      stopWatch.stop();
    stopWatch.getElapsedTime();

Em cám ơn!

mới lặp lần đầu là dừng luon rồi

2 Likes

Vẫn ko đc bác ơi :frowning:

Sau đây là trò chơi tìm điểm khác biệt. Hãy tìm điểm khác biệt duy nhất ở 2 đoạn mã sau:
Đoạn 1:

for (int i = 1; 1 <= 1000000; i++){

}

Đoạn 2:

for (int i = 1; i <= 1000000; i++){

}

Tên của phần chơi này là: Lặp vô tận

4 Likes

Vậy cái IDE nó highlight, warning và error là để làm cảnh hả bạn ơi :’(

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?