有什么好方法可以得到即将到来的星期三的日期吗?

Is there a good way to get the date of the coming Wednesday?(有什么好方法可以得到即将到来的星期三的日期吗?)
本文介绍了有什么好方法可以得到即将到来的星期三的日期吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

有没有什么好的方法可以获取下周三的日期?即如果今天是星期二,我想得到这周星期三的日期;如果今天是星期三,我想得到下星期三的日期;如果今天是星期四,我想得到下周星期三的日期.

Is there a good way to get the date of the coming Wednesday? That is, if today is Tuesday, I want to get the date of Wednesday in this week; if today is Wednesday, I want to get the date of next Wednesday; if today is Thursday, I want to get the date of Wednesday in the following week.

谢谢.

推荐答案

基本算法如下:

  • 获取当前日期
  • 获取星期几
  • 找出与星期三的不同之处
  • 如果差值不是正数,则加 7(即坚持下一个/未来日期)
  • 添加差异

这里有一个片段展示如何使用 java.util.Calendar 来做到这一点:

Here's a snippet to show how to do this with 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".

Relative to my here and now, the output of the above snippet is "Wed, Aug 18, 2010".

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

这篇关于有什么好方法可以得到即将到来的星期三的日期吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Month is not printed from a date - Java DateFormat(月份不是从日期打印的 - Java DateFormat)
java get week of year for given a date(java获取给定日期的一年中的一周)
Get the number of days, weeks, and months, since Epoch in Java(获取自 Java 中的 Epoch 以来的天数、周数和月数)
Calendar view for Android GingerBread and before (APIlt;11)(Android GingerBread 及之前的日历视图 (API11))
How to save and retrieve Date in SharedPreferences(如何在 SharedPreferences 中保存和检索日期)
Why is the month changed to 50 after I added 10 minutes?(为什么我加了 10 分钟后月份变成了 50?)