java - 添加天数,android studio

标签 java android date datetime android-calendar

在我的应用程序中,用户可以选择日历日期,然后选择他想要添加的天数。

添加工作日期非常好,但我需要跳过工作日。

例如,您将选择日期并添加 +15 天,结果将是星期六或星期日,但在这种情况下,如果结果是这些天之一,我需要始终获得星期一。

这是添加天数的方法

public static Date addDays(Date date, int days) {
     Calendar cal = Calendar.getInstance();
     cal.setTime(date);
     cal.add(Calendar.DATE, days + FirstClass.hotovo); 
     return cal.getTime();
}

感谢您的帮助,我不是编程专家。我是业余爱好者,仍在学习中..

最佳答案

您应该检查结果是哪一天,即检查是SATURDAY还是SUNDAY,然后添加2或1以获得下一个MONDAY

NOTE: I do not know what is FirstClass.hotovo so I have removed temporary from below code and you can add it as you would have it in your project. Below is to demonstrate how to check day and add 1 or 2 day respectively.

这是示例代码。

来电者:

addDays(new Date(), 18);

你的方法:

public static Date addDays(Date date, int days) {
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    cal.add(Calendar.DATE, days);
    Log.d("TEST", "BEFORE CHECKING: " + cal.getTime().toString());
    // SATURDAY is the last day of week so add 2 days
    if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
        cal.add(Calendar.DATE, 2);
        // SUNDAY is the first day of week so add 1 day
    } else if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
        cal.add(Calendar.DATE, 1);
    } // else not required as it means its one of the week day
    Log.d("TEST", "AFTER UPDATING: " + cal.getTime().toString());
    return cal.getTime();
}

示例运行

结果日期是SATURDAY,因此添加 2 天即可得到MONDAY

07-25 15:46:55.729 4219-4219/? D/TEST: BEFORE CHECKING: Sat Aug 12 15:46:55 PDT 2017
07-25 15:46:55.729 4219-4219/? D/TEST: AFTER UPDATING: Mon Aug 14 15:46:55 PDT 2017

结果日期是 SUNDAY,因此添加 1 天即可得到 MONDAY

07-25 15:47:57.634 4322-4322/? D/TEST: BEFORE CHECKING: Sun Aug 13 15:47:57 PDT 2017
07-25 15:47:57.634 4322-4322/? D/TEST: AFTER UPDATING: Mon Aug 14 15:47:57 PDT 2017

结果日期是星期二,因此不再添加更多天

07-25 15:52:27.115 4445-4445/? D/TEST: BEFORE CHECKING: Tue Aug 15 15:52:27 PDT 2017
07-25 15:52:27.115 4445-4445/? D/TEST: AFTER UPDATING: Tue Aug 15 15:52:27 PDT 2017

关于java - 添加天数,android studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45313511/

相关文章:

java - 尝试在位于其他包中的子类中使用 protected 构造函数时,Eclipse 显示错误

java - @TestPropertySource - 测试属性文件中的值未设置/设置为 null

java - macrodef 上的 Ant 'unless'

java - 在java中反转字符串

android - 如何将 "long click listener"添加到首选项?

Java - 使用 Joda 定义时间间隔

mysql - 将现有的 MySQL 数据库移动到具有不同操作系统时区的服务器

android - Kotlin 延迟加载在 Junit 测试中不起作用

java - DNS over TLS - 套接字关闭

ios - 日期对象随设备设置而变化? ( swift 3)