java - Android 将 7.5 小时添加到特定日期

标签 java android

在我的 Android 应用程序中,我有 3 个用于小时/分钟/以及下午或上午的微调器。我想添加 7.5 小时以获得用户 sleep 所需的时间。我的这个 Android 应用程序是一个用户 sleep 计算器。例如,我想在早上 7:00 起床。到晚上 11:15 您应该已经 sleep 了。请给我一些关于如何执行此操作的指示。我急需帮助。谢谢。感谢您的帮助。

像这样:

  /**
   * Get sleeping times corresponding to a local time
   * 
   * @param wakingTime
   *            time to wake up !
   * @return list of times one should go to bed to
   */

  public static Set<Date> getSleepingTimes(Date wakingTime) {

    Set<Date> result = new TreeSet<Date>();
    Calendar calendar = Calendar.getInstance();
    calendar.setTime( wakingTime );
    calendar.add( Calendar.MINUTE, -14 );
    calendar.add( Calendar.MINUTE, -( 2 * 90 ) );
    for ( int i = 3; i <= 6; i++ ) {
      calendar.add( Calendar.MINUTE, -90 );
      result.add( calendar.getTime() );
    }
    return result;

  } // end of getSleepingTimes method

最佳答案

public static Date getSleepingTimes(Date wakingTime) {

    Calendar calendar = Calendar.getInstance();
    calendar.setTime( wakingTime );
    calendar.add(Calendar.HOUR,-7);
    calendar.add(Calendar.MINUTE,-30);

    return calendar.getTime();

}

但最好不要对 7.5 小时进行硬编码。

public static Date getSleepingTimes(Date wakingTime, int hoursToSleep, int minutesToSleep) {

    Calendar calendar = Calendar.getInstance();
    calendar.setTime( wakingTime );
    calendar.add(Calendar.HOUR,-hoursToSleep);
    calendar.add(Calendar.MINUTE,-minutesToSleep);

    return calendar.getTime();

}

像这样使用:

   getSleepingTime(wakingTime, 7, 30);

关于java - Android 将 7.5 小时添加到特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12873235/

相关文章:

java - TimerTask 中的 NetworkOnMainThreadException

java - Android - 将多个图像合并为一个 ImageView

android - 如何确定订阅通知是否来自 Android 中的测试帐户

java - 使字符串连续所需的最少更改 x 数量A 的之后,然后是 (n-x) 个 B 的之后

java - 无法将 db '/data/data/my.easymedi.controller/databases/EasyMediInfo.db' 的区域设置更改为 'en_US'

java - JVM 如何确保 System.identityHashCode() 永远不会改变?

java - 尝试运行 Tarjan 算法的 java 实现

java - TCP 客户端/服务器通信只发送第一条消息?

android - 如何以编程方式更新 Android 应用程序

java - Android 将字符串名称转换为 R.drawable.name