蓝桥杯日期问题
2023-12-15 14:31:04
注意日期合法的判断
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
static int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31};
static BufferedReader in = new BufferedReader(
new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
String[] init = in.readLine().split("/");
int a = Integer.parseInt(init[0]);
int b = Integer.parseInt(init[1]);
int c = Integer.parseInt(init[2]);
for (int i = 19600101; i < 20591231; i++) {
int year = i / 10000;
int month = i / 100 % 100;
int day = i % 100;
if (check(year,month,day)){
if (year % 100 == a && month == b && day == c //abc
|| year % 100 == c && month == a && day == b //cab
|| year % 100== c && month == b && day == a //cba
) System.out.printf("%d-%02d-%02d\n",year,month,day);
}
}
in.close();
}
public static boolean check(int year,int month,int day){
//月份异常
if (month == 0 || month > 12) return false;
//天数异常
if (day == 0 || month != 2 && day > days[month]) return false;
//不是2月的情况可能会在这出现,比如1月32号
if(month == 2){
//单独判断月份为2时是否是闰年
int res = 0;
if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) res++;
if (day > 28 + res) return false;
}
return true;
}
}
文章来源:https://blog.csdn.net/2302_76649176/article/details/134888504
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!