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

有没有很好的方法来获取下一个星期三的日期?

侯令雪
2023-03-14
问题内容

有没有很好的方法来获取下一个星期三的日期?也就是说,如果今天是星期二,我想获取本周星期三的日期;如果今天是星期三,我想知道下星期三的日期;如果今天是星期四,我想获取下周的星期三日期。

谢谢。


问题答案:

基本算法如下:

  • 获取当前日期
  • 取得星期几
  • 与周三找到不同
  • 如果差异不是正数,则加7(即坚持下一个到来/将来的日期)
  • 增加差异

这是一个片段,展示了如何使用java.util.Calendar

import java.util.Calendar;

public class NextWednesday {
    public static Calendar nextDayOfWeek(int dow) {
        Calendar date = Calendar.getInstance();
        int diff = dow - date.get(Calendar.DAY_OF_WEEK);
        if (diff <= 0) {
            diff += 7;
        }
        date.add(Calendar.DAY_OF_MONTH, diff);
        return date;
    }
    public static void main(String[] args) {
        System.out.printf(
            "%ta, %<tb %<te, %<tY",
            nextDayOfWeek(Calendar.WEDNESDAY)
        );
    }
}

相对于我现在的位置,上述代码段的输出为"Wed, Aug 18, 2010"

API链接

  • java.util.Calendar
  • java.util.Formatter -用于格式化字符串的语法


 类似资料:
  • 问题内容: 是否有一个很好的方法来Map 获取和忽略案件? 问题答案: TreeMap扩展了Map并支持自定义比较器。 字符串提供默认的不区分大小写的比较器。 所以: 比较器不考虑区域设置。在其JavaDoc中阅读有关它的更多信息。

  • 问题内容: 我需要输出从当前日期开始的未来12个月的日期列表(仅星期一和星期二),如下所示: 2010年1月 星期二2010年1月12日 星期一2010 年1月18日 星期二2010 年1月19日 星期一2010 年1月25 日星期一2010年 2月2日 星期二2010 年2月8日 星期一2010年2月9日星期二2010 年 2月 15 日星期一2010年2月15日 星期二2010 年2月16日

  • 我想知道从今天起,某个较老的日期到底有多少个月和几天(可能是几年)。有没有办法做到这一点? 我知道如何计算月差,我知道如何计算日差。但我无法得到月和日。 Ex: #2013-03-04;现在=2013-04-17 所以我想要的结果大概是1个月13天 *也许是12点,我不是很确定。

  • 问题内容: 因此,对于一个开始日期和结束日期,我想确定在这两个日期之间发生的一周中的特定天数。 那么多少个星期一,星期二等 我知道我可以在“开始日期”和“结束日期”之间循环并每天检查一次,但是可能相差很多天。我更喜欢不需要循环的东西。有任何想法吗?(必须在SQL Server2005+中受支持) 问题答案: 鉴于我 认为 您正在尝试获得的结果,应该这样做:

  • 我需要使用日历来实现这个方法,基本上我得到了一周中的具体日期(1,2,3),每个int代表一周中的一天(周一,周二),不是按这个顺序,但逻辑是这样的。 我需要的是获取一周中第二天的日期,假设今天是周一,用户选择Wednesday,我需要获取下周三的日期。 目前我的逻辑是: day of week是从slidePicker传递过来的,代表一周中的特定日期,如果我把Wednesday放在他给我的6上,

  • 问题内容: 是否有一个适用于Java的 严格的严格 日期解析器?我可以访问Joda-Time,但尚未看到此选项。我发现了“ Java是否有一个好的日期解析器”的问题,尽管与此相关,但恰恰相反。尽管这个问题要求宽大,更加模糊的逻辑并且易于出现人为错误解析器,但我想要一个严格的解析器。例如,对于JodaTime(据我所知)和simpleDateFormat,如果格式为“ MM / dd / yyyy”