今天刷蓝桥杯的题,用C++AC了之后,发现解析里有兄弟用Java的LocalDate类做的,步骤极其简洁,【由于寒假开始学过一点Java】所以我特意去搜了搜LocalDate类,发现解这种题真的很好使!!!废话少说,上题干!
在 X 星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。 每个炸弹都可以设定多少天之后爆炸。比如:阿尔法炸弹 2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。有一个贝塔炸弹,2014年11月9日放置,定时为1000天。请你计算它爆炸的准确日期。请输出该日期,格式为yyyy-mm-dd,即 4 位年份 2 位月份 2 位日期。比如:2015-02-19。
#include
#include
using namespace std;
int mons[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int year,mon,day;
int main()
{
int num;
cin >> year >> mon >> day >> num;
year=2014,mon=11,day=9,num=1000; //本题已给出具体日期,咱们可以直接对其赋值即可,如果需要输入日期和跳转的天数,则将其删去即可。
while(num--){
day++;
if(day > mons[mon]){
mon++;
day=1;
}
if(mon > 12){
mon=1;
year++;
if(year%400==0||(year%4==0&&year%100!=0))
mons[2]=29;
else
mons[2]=28;
}
}
cout << year << "-" << mon/10 << mon << "-" << day/10 << day;
return 0;
}
import java.time.LocalDate;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2014, 11, 9).plusDays(1000);
System.out.println(date);
}
}
Java
中的LocalDate
类Java中专门提供了一个java.time的"时间包",其中包括Date类,LocalDate类,LocalTime类,LocalDateTime类等。而本文要讲的LocalDate类是Java8的新特性,是通过日历法表示日期,即想要指定年月日可以用这个。
LocalDate localDate = LocalDate.now();
LocalDate localDate = LocalDate.of(2023,05,20);
int year = localDate.getYear();
Month month = localDate.getMonth();
int mon = month.getValue();
int day = localDate.getDayOfMonth();
Java中给定两种方法,一种向该日期之前跳转n天,另一种我不用说了叭没错,向后跳转n天,返回值正是跳转的日期。【这就非常nice哇,我们不需要考虑平闰年、月份天数……等各种事啦】
直接.上方法即可
LocalDate localDate1 = LocalDate.of(2023,05,20).plusDays(1000); //向后跳转1000天
LocalDate localDate2 = LocalDate.of(2023,05,20).minusDays(1000); //向前跳转1000天
更多的内容CSDN上有大佬已经整理出来啦,非常不错的,点这里直达java中LocalDate使用总结