【发布时间】:2019-12-13 07:21:01
【问题描述】:
在下面的 Java 类中,我需要编写将 int 转换为 Date 的逻辑,如下所述。而且这个程序与在当前日期添加天数无关。
如果 endDay 值为 1,则日期应打印为 2020 年 1 月 1 日。
如果 endDay 值为 28,则日期应打印为 2020 年 1 月 28 日。
如果 endDay 值为 35,则日期应打印为 2020 年 2 月 4 日。
如果 endDay 值为 60,则日期应打印为 2020 年 2 月 29 日。
如果 endDay 值为 70,则日期应打印为 2020 年 3 月 10 日。
注意:endDay (1) 的值总是从每年的 1 月 1 日开始。
import java.util.Date;
public class TestDate
{
public void startEndDate(int endDay)
{
Date date=new Date();
//logic to print the date here
System.out.println("For the given end day of "+endDay+" the date returned is : "+date);
}
public static void main(String[] args)
{
startEndDate(35);
startEndDate(49);
startEndDate(70);
}
}
任何人都可以建议我如何编写上述逻辑的想法吗?
【问题讨论】:
-
首先不要使用过时的 Date 类。使用 java.time.LocalDate。阅读它的 javadoc。这很简单。 docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html
-
查看 Calendar 类的 JavaDocs - docs.oracle.com/javase/8/docs/api/java/util/… 或 LocalDate 类 - docs.oracle.com/javase/8/docs/api/java/time/…。
-
LocalDate.of(2019, 12, 31).plusDays(endDay).format(DateTimeFormatter.ofPattern("MMMM d uuuu")) -
@Andreas 为什么不将其发布为答案而不是评论?
-
@Abra 因为答案在顶部链接的相关问题中。该问题是关于将天数添加到当前日期,但这与将天数添加到特定日期没有什么不同,这是这个问题想要的,所以这个问题仍然是重复的。我刚刚添加了评论以显示如何使用固定日期进行操作并获得正确格式的示例。
标签: java