java - 如何计算到设定时间的剩余时间

标签 java android timer alarm

我想在 Android(Java)中创建一个类似闹钟的应用程序,我想计算剩余的小时数和分钟数。当我将闹钟设置为凌晨 1:00 时。我现在的时间是晚上 20:00,它会告诉我“5 小时后会响起警报”,但它会在 19 小时后告诉我,如何解决。

Toast.makeText(this, "Hours: " + (calendar.getTime().getHours() - timePicker.getCurrentHour()) + "Minutes: " + (calendar.getTime().getMinutes() - timePicker.getCurrentMinute()) , Toast.LENGTH_SHORT).show();

最佳答案

尝试这样的事情:

    Calendar cal = Calendar.getInstance();

    int hrs = cal.get(Calendar.HOUR_OF_DAY);

    Calendar alCal = Calendar.getInstance();
    alCal.set(Calendar.HOUR_OF_DAY, timePicker.getCurrentHour());

    alCal.set(Calendar.MINUTE, timePicker.getCurrentMinute());

    if(timePicker.getCurrentHour() < hrs){
        alCal.add(Calendar.DAY_OF_MONTH, 1);
    }

    long diff = alCal.getTimeInMillis() - cal.getTimeInMillis();

    long leftHrs = (diff / (60 * 60 * 1000));
    long leftMin = (diff / (60 * 1000)) - (leftHrs * 60);

    // Output
    Toast.makeText(this,"Hours: "+leftHrs+"Minutes: "+leftMin,Toast.LENGTH_SHORT).show();

关于java - 如何计算到设定时间的剩余时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53971475/

相关文章:

java - 监控Spring boot应用程序: gather service/node availability data for offline reporting

java - 使用Retrofit从json获取数据

android - 每次关闭应用程序android后都会出现谷歌登录

java.net.ConnectException : Connection refused TCP

javascript - 在 aspx 页面上仅运行一次 javascript 计时器

安卓倒计时时间

c++ - 如何用单个信号处理程序解决这个多个Linux计时器

java - 使用sql比较java中的日期与当前日期

java - SpringRunner 是否应该在 Spring Boot 中与 Junit 5 一起使用

android - 如何在Android中使用C++