【问题标题】:How to find the day when year, month and date is given?如何找到给出年月日的日期?
【发布时间】:2021-07-23 17:43:23
【问题描述】:

当我有 YEAR、MONTH、DATE 等输入时,我需要一个解决方案来返回日期(星期一、星期二...)。

public static String findDay(int month, int day, int year) { // code here }

    

【问题讨论】:

  • 欢迎来到 Stack Overflow。请了解,在本网站上,您需要(也是为了您自己)在发布问题之前进行搜索,并在问题中报告您发现的内容以及它以何种方式未能提供您想要的内容。因为这样您通常会更快地找到更好的答案,并且因为它允许我们编写更准确、更具体地解决您的问题的答案。
  • Vaibhav Atray - @OleV.V 的宝贵意见。一定会帮助您在未来以更好的方式使用 SO。同时,通过this example,这个问题在 SO 上没有任何重复(到目前为止我还没有找到这个问题的完全重复)。
  • @ArvindKumarAvinash 我之前也没有找到完全相同的问题。例如,熟练的提问者可能能够将来自this questionthis one 的答案拼凑在一起。不过,读者应该更愿意跳过所有使用 CalendarSimpleDateFormat 和其他旧日期和时间类的答案,并像您自己的好答案一样选择使用 java.time 的答案。

标签: java calendar date-format localdate


【解决方案1】:

使用参数,创建一个LocalDate,您可以从中获取工作日。

import java.time.LocalDate;
import java.time.format.TextStyle;
import java.util.Locale;

public class Main {
    public static void main(String args[]) {
        // Test
        System.out.println(findDay(2021, 4, 30));
    }

    public static String findDay(int year, int month, int day) {
        LocalDate date = LocalDate.of(year, month, day);
        return date.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.ENGLISH);
    }
}

输出:

Friday

通过Trail: Date Time了解更多关于modern date-time API* 的信息。


* 出于任何原因,如果您必须坚持使用 Java 6 或 Java 7,您可以使用 ThreeTen-Backport,它将大部分 java.time 功能向后移植到 Java 6 和 7 . 如果您正在为一个Android项目工作并且您的Android API级别仍然不符合Java-8,请检查Java 8+ APIs available through desugaringHow to use ThreeTenABP in Android Project

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    相关资源
    最近更新 更多