Let's code an alarm clock with Java! ⏰

Published: 28 December 2024
on channel: Bro Code
25,820
615

#java #javatutorial #javacourse

This is a beginner's project to help us learn and understand Object Oriented Programming and Threading. We will only be using topics we have discussed in past videos in this series.

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.Scanner;

public class Main {
public static void main(String[] args) {

// JAVA ALARM CLOCK

Scanner scanner = new Scanner(System.in);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalTime alarmTime = null;
String filePath = "A Caring Friend.wav";

while(alarmTime == null){
try{
System.out.print("Enter an alarm time (HH:MM:SS): ");
String inputTime = scanner.nextLine();

alarmTime = LocalTime.parse(inputTime, formatter);
System.out.println("Alarm set for " + alarmTime);
}
catch(DateTimeParseException e){
System.out.println("Invalid format. Please use HH:MM:SS");
}
}

AlarmClock alarmClock = new AlarmClock(alarmTime, filePath, scanner);
Thread alarmThread = new Thread(alarmClock);
alarmThread.start();
}
}

import javax.sound.sampled.*;
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.time.LocalTime;
import java.util.Scanner;

public class AlarmClock implements Runnable{

private final LocalTime alarmTime;
private final String filePath;
private final Scanner scanner;

AlarmClock(LocalTime alarmTime, String filePath, Scanner scanner){
this.alarmTime = alarmTime;
this.filePath = filePath;
this.scanner = scanner;
}

@Override
public void run(){

while(LocalTime.now().isBefore(alarmTime)){
try {
Thread.sleep(1000);

LocalTime now = LocalTime.now();

System.out.printf("\r%02d:%02d:%02d",
now.getHour(),
now.getMinute(),
now.getSecond());
}
catch (InterruptedException e) {
System.out.println("Thread was interrupted");
}
}

System.out.println("\n*ALARM NOISES*");
playSound(filePath);
}
private void playSound(String filePath){

File audioFile = new File(filePath);

try(AudioInputStream audioStream = AudioSystem.getAudioInputStream(audioFile)){
Clip clip = AudioSystem.getClip();
clip.open(audioStream);
clip.start();
System.out.print("Press Enter to stop the alarm: ");
scanner.nextLine();
clip.stop();
scanner.close();
}
catch(UnsupportedAudioFileException e){
System.out.println("Audio file format is not supported");
}
catch(LineUnavailableException e){
System.out.println("Audio is unavailable");
}
catch(IOException e){
System.out.println("Error reading audio file");
}
}
}


On this page of the site you can watch the video online Let's code an alarm clock with Java! ⏰ with a duration of hours minute second in good quality, which was uploaded by the user Bro Code 28 December 2024, share the link with friends and acquaintances, this video has already been watched 25,820 times on youtube and it was liked by 615 viewers. Enjoy your viewing!