当前位置: 首页 > 知识库问答 >
问题:

从当前日期算起可以再加150天吗?[副本]

琴英华
2023-03-14

我有一个像20211231这样的当前日期格式,我想在这个日期上再加150天。在那之后,如果时间还不到150天,或者已经过去了,我怎么检查呢

我尝试用这段代码将当前日期增加150天,但失败了

 Calendar c= Calendar.getInstance();
        c.add(Calendar.DATE, 150);
        Date d = c.getTime ();

idk如果它不再有效了,或者自从我读了一个9年零五个月前被问和回答的问题后又怎么样https://stackoverflow.com/a/11727986/17562398

这是我现在的日期选择器

 SimpleDateFormat cdate = new SimpleDateFormat ("yyyyMMdd", Locale.getDefault ( ));
        String currentDate = cdate.format (new Date ( ));

共有2个答案

陆英毅
2023-03-14

这是我用currentdate(今天)检查150天的逻辑

DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");

 String sDate="20211231"; 
 Date cuDate=dateFormat.parse(sDate);  

Date currentDate = new Date();
 Calendar calendarObj = Calendar.getInstance();
        calendarObj.setTime(cuDate);

calendarObj.add(Calendar.MONTH, 5); // since this is 150 days (i think it's 30 days * 5 )

Date newDateAfter5months = calendarObj.getTime();


System.out.println("newDateAfter5months="+dateFormat.format(newDateAfter5months));


if(newDateAfter5months.compareTo(currentDate) > 0) {
         System.out.println("newDateAfter5months occurs after currentDate");
      } 
淳于亦
2023-03-14

使用来自java.time.*包的现代JavaTime API。

可以使用java以所需格式解析或格式化(用于显示)日期。时间总体安排DateTimeFormatter。模式(字符串、区域设置)方法。以下是DateTimeFormatter类的文档

DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyyMMdd", locale);

如果您正在解析作为用户输入的日期,也不要忘记捕获解析异常。

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

//...

// The desired locale, maybe the target user selected language/region locale?
// For now just using the default locale here
Locale locale = Locale.getDefault();
    
String someInputDate = "20220529";
    
try {
    // using the DateTimeFormatter to parse the date with a desired pattern
    DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyyMMdd", locale);
    LocalDate inputDate = LocalDate.parse(someInputDate, dateFormatter);
    
    // 150 days from now
    int daysFromNow = 150;
    LocalDate targetDate = LocalDate.now().plusDays(daysFromNow);
    android.util.Log.d(
        "Dates", String.format("The date %d days from now is %s", daysFromNow, targetDate.format(dateFormatter))
    );
    if (inputDate.isAfter(targetDate)) {
        // the input date is past 150 day from now
        android.util.Log.d(
            "Dates", String.format("%s at least %d days from now", inputDate.format(dateFormatter), daysFromNow)
        );
    } else {
        // the input date is NOT past 150 day from now
        android.util.Log.d(
            "Dates", String.format("%s is less than %d days from now", inputDate.format(dateFormatter), daysFromNow)
        );    
    }
} catch (DateTimeParseException e) {
    // The input is a date in a different format or is malformed/invalid
}

日志输出

Dates    The date 150 days from now is 20220530
Dates    20220529 is less than 150 days from now
 类似资料:
  • 我有一个像20211231这样的当前日期格式,我想在这个日期上再加150天。在那之后,如果时间还不到150天,或者已经过去了,我怎么检查呢 我尝试这个代码添加150天到当前日期,但它失败了 idk如果它不再有效了,或者自从我读了一个9年零五个月前被问和回答的问题后又怎么样https://stackoverflow.com/a/11727986/17562398 这是我现在的约会对象

  • 问题内容: 我已经进行了所有设置,将当前日期存储到Java中的变量中。我要弄清楚的是如何存储当前日期之后1年的日期。 这是我当前的日期: 因此,例如,如果今天是今天,它将存储2/18/2013。我正在尝试存储日期2/18/2014。我将如何去做呢? 问题答案: 如果您不想拖动外部库,只需使用 请注意,如果日期是,并且您添加了1年,则将获得

  • 我与当下一起工作。js和我有3个不同的日期,例如。 2018年7月30日 2018年6月12日 2018年5月10日 现在,我尝试获取从这些日期到今天(如果少于7天前)或到今天(如果超过7天前)的周数的差值,并将其放置在几个跨度中。 更新感谢托马斯! 我得到: 我还需要什么: > 不显示,这应该是 这是实际的小提琴。

  • 问题内容: 有人可以告诉我如何从当前日期减去45天吗? 谢谢 问题答案: 您可以使用Calendar类: