Skip to content
Snippets Groups Projects
Commit 363adec5 authored by ADAMOU Salim's avatar ADAMOU Salim
Browse files

modification de la classe Alarm.java avec l'ajut d'une variable count qui...

modification de la classe  Alarm.java avec l'ajut d'une variable count qui sera incrementer au fur et à mesure et modification du main
parent d9f4aed5
No related branches found
No related tags found
No related merge requests found
......@@ -9,9 +9,23 @@ import java.time.LocalTime;
public class Main {
public static void main(String[] args) throws InterruptedException {
Ticker ticker = new Ticker();
Clock clock = new Clock();
ticker.add(clock);
// Alarme "Fizz" toutes les trois secondes
Alarm fizzAlarm = new Alarm();
fizzAlarm.addReminder("Fizz", 3);
ticker.add(fizzAlarm);
// Alarme "Buzz" toutes les cinq secondes
Alarm buzzAlarm = new Alarm();
buzzAlarm.addReminder("Buzz", 5);
ticker.add(buzzAlarm);
// Démarrer le Ticker
ticker.startTicking();
// Ajouter une attente infinie pour maintenir le programme en cours d'exécution
while (true) {
Thread.sleep(1000);
}
}
}
\ No newline at end of file
......@@ -12,58 +12,39 @@ import java.util.Timer;
import java.util.TimerTask;
public class Alarm implements Tickable {
private LocalTime alarmTime;
private final List<Reminder> reminders = new ArrayList<>();
private int counter = 0;
private List<Reminder> reminders = new ArrayList<>();
public void setAlarmTime(LocalTime alarmTime) {
this.alarmTime = alarmTime;
}
public void addReminder(String message, int seconds) {
reminders.add(new Reminder(message, seconds));
public void addReminder(String message, int interval) {
reminders.add(new Reminder(message, interval));
}
@Override
public void notifyTick() {
if (alarmTime != null) {
LocalTime currentTime = LocalTime.now().withNano(0);
if (currentTime.equals(alarmTime)) {
Timer timer = new Timer();
counter++;
for (Reminder reminder : reminders) {
timer.schedule(new ReminderTask(reminder.getMessage()), reminder.getSeconds() * 1000);
}
if (counter % reminder.getInterval()== 0) {
System.out.println(reminder.getMessage());
}
}
}
private static class Reminder {
private final String message;
private final int seconds;
private final int interval;
public Reminder(String message, int seconds) {
public Reminder(String message, int interval) {
this.message = message;
this.seconds = seconds;
this.interval = interval;
}
public String getMessage() {
return message;
}
public int getSeconds() {
return seconds;
}
}
private static class ReminderTask extends TimerTask {
private final String message;
public ReminderTask(String message) {
this.message = message;
}
@Override
public void run() {
System.out.println(message);
public int getInterval() {
return interval;
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment