当前位置: 首页 > 面试题库 >

将1周添加到日期中,首选哪种方式?

公西国发
2023-03-14
问题内容

我正在审查一些工作中的代码,发现代码在处理当前时间增加1周时的处理方式不一致,并且想知道是否有任何理由使一个人真正比另一个人更受青睐:

第一个是实用程序方法:

public static Date addDaysToDate(final Date date, int noOfDays) {
    Date newDate = new Date(date.getTime());

    GregorianCalendar calendar = new GregorianCalendar();
    calendar.setTime(newDate);
    calendar.add(Calendar.DATE, noOfDays);
    newDate.setTime(calendar.getTime().getTime());

    return newDate;
}

第二个使用简单的毫秒算法:

long theFuture = System.currentTimeMillis() + (86400 * 7 * 1000);
Date nextWeek = new Date(theFuture);

第二种方法显然使用“幻数”来定义星期,但是可以将其移动为常量。MILLISECONDS_IN_ONE_WEEK = 86400 * 7 * 1000
除此之外,是否有任何理由为什么其中一种方法比另一种更受青睐?

基本上,我想将代码更改为始终保持一致,但是我不确定要删除哪个代码。因此,任何一种或另一种论点都将是有用的。


问题答案:

这两种方法在夏时制边界上的行为会有所不同。无论夏令时状态如何,第一种方法都会在一天的同一时间继续返回。第二种方法将返回夏时制时间的开始和停止,每个时间返回的时间在每个方向上会有所不同。



 类似资料:
  • 问题内容: 似乎只有少数JVM是Java实时规范(RTSJ)的实现。Sun / Oracle Java Real- TimeSystem的价格超过6000美元,IBM的实时WebSphere的价格超过7000美元,因此许多Java开发人员可能永远都没有机会使用它们中的任何一个。甲骨文的JRockit似乎是一个免费的实时Java实现,具有可预测的确定性行为,尽管我不确定,因为他们的文档非常注重营销语

  • 我在一个Android Live壁纸应用程序中有如下偏好。(这些是复选框)。我想添加一个链接到一个Facebook页面到这个列表。在网上查看Android PreferenceCategory,我没有看到任何类似“LinkPreference”或“ButtonPreference”的东西,但话说回来,链接或按钮并不是真正的首选,所以也许我想把一个方形的钉子放在一个圆孔里。这可能吗?如果可能,如何可

  • 我在我的应用程序中有日期选择器,它工作得很好。但是我需要选择一周中的某一天而不是日期(即,如果我选择日期23,我需要获得像“星期五”这样的日子而不是数字)。我使用进行点击事件。 我需要一连串的日子(如星期一或星期二)..)用于上述代码中的< code>selectedDay

  • 我目前正在处理一个问题,其中DateTime.addMonths(iStartDateH,DurationAsInt)正在增加一天。它在内部使用格鲁吉亚日历。我们目前正在这个项目中使用Java 5,例如:24个月 我尝试检查完整的日期/时间差异,并将其作为730.77393518518518555请帮助。

  • 本文向大家介绍使用Java中的Calendar.add()方法将秒添加到当前日期,包括了使用Java中的Calendar.add()方法将秒添加到当前日期的使用技巧和注意事项,需要的朋友参考一下 为Java中的Calendar类导入以下软件包。 首先,创建一个Calendar对象并显示当前日期和时间。 现在,让我们使用calendar.add()方法和Calendar.SECOND常数增加秒数。

  • 问题内容: 我有一个现有的日期对象,希望将其增加一天,同时将其他所有字段保持不变。我遇到的每个示例都耗时数小时/分钟/秒,或者您必须创建一个新的日期对象并转移字段。有没有一种方法可以将日字段提前1? 谢谢 编辑:对不起,我并不是说要把当天的值增加一,我的意思是将日期提前1 问题答案: Calendar c = Calendar.getInstance(); c.setTime(yourdate);