我目前正在尝试使用java在我进入程序的特定时间打开我的默认网络浏览器到YouTube视频(为了发出警报)
这是我的代码:
import java.awt.Desktop;
import java.net.URI;
import java.net.URISyntaxException;
import java.io.IOException;
public class YtAlarm
{
int hr;
int min;
public YtAlarm(int hours, int minutes) //constructor
{
hr = hours;
min = minutes;
}
public static void main (String [] args) throws URISyntaxException, IOException //main method
{
String url = "https://www.youtube.com"; //link to open once alarm goes off
YtAlarm ytalarm = new YtAlarm(15, 20); //sets alarm to go off at 3:20 PM
long alarm1 = ytalarm.convertTimeToMilli(); //converts alarm time to ms
do //checks what time it is on each itteration and once alarm1== curent time, opens yt video
{
if (System.currentTimeMillis() == alarm1)
{
if (Desktop.isDesktopSupported())
{
Desktop.getDesktop().browse(new URI(url));
}
}
}
while (System.currentTimeMillis()!= time);
}
public long convertTimeToMilli() //method to convert alarm time from hours and minutes to ms
{
long milli = (60000*min) + (3600000*hr);
return milli;
}
}
此代码编译时没有错误但无法正常运行。当前时间与我输入构造函数的时间相匹配时,它不会打开我输入的链接。有谁知道如何更改我的代码,以便它按照我打算的方式运行?
答案 0 :(得分:-1)
首先将您的alarm1值与System.currentTimeMillis()值进行比较,您将知道原因。实际上,从1970年1月1日到现在,System.currentTimeMillis()总共为您提供了毫秒,而从午夜到该时间(15:20)总共为毫秒。
您可以使用
LocalDateTime now = LocalDateTime.now();
int hour=now.getHour();
int minute=now.getMinute();
在此之后,将小时与小时以及分钟与分钟进行比较。