【PTA】约会成功了吗?

请添加图片描述
个人名片:

博主酒徒ᝰ.
个人简介沉醉在酒中,借着一股酒劲,去拼搏一个未来。
专栏PTA习题及解析
介绍记录了博主在pta学习练题

请添加图片描述

前言

1.简介

“PTA程序设计类实验辅助教学平台”是由浙江大学主导,杭州百腾教育科技有限公司管理运营,全国高校教师共同建设的程序设计类课程的辅助教学平台。目前,全国538所高校参与,3152位教师共同建设出66095道高质量题目,学生注册用户已达136万;共有14类固定题目集(涵盖C语言、JAVA语言、Python语言、数据结构、数据库系统和中国高校计算机大赛题库等方面)和55类专业课程题目集(涵盖计算机类、电子类、文学类、外语类及华为认证)。包含判断题、填空题、单选题、多选题、程序填空题、函数题、编程题、主观题、多文件编程题和SQL编程题10种题目类型。

2.优点

  • 支持20万人同时在线
  • 支持多种题型
  • 支持多种判题模式
  • 为教学质量提供全方位保障
  • 即时的答疑系统

一、题目

2021年9月9日,张三想约一直暗恋了很久的的女生小芳看电影,小芳告诉张三这天没空,可以答应在某年某月某日陪他一起看。输入一个约会的日期,请你编写程序判断最终张三是否能实现他约会的愿望,若能实现则输出yes,否则输出no。注意,约会不能穿越到2021年9月9日前。

输入格式:
在一行中输入年月日,用-分隔。

输出格式:
合法的日期输出yes,不合法的日期输出no

输入样例1:

2022-7-7

输出样例1:

yes

输入样例2:

2022-2-29

输出样例2:

no

输入样例3:

2021-2-28

输出样例3:

no

代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB

二、代码

import java.util.Scanner;

public class Main {
    
    
    public static void main(String[] args) {
    
    
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        String[] times = str.split("-");
        int[] sum = new int[3];
        int i = 0;
        for (String time : times) {
    
    
            int num = Integer.parseInt(time);
            sum[i] = num;
            i++;
        }
        int year = sum[0];
        int month = sum[1];
        int day = sum[2];
        //2021年9.9之前
        if (year < 2021 ||( year == 2021 && month == 9 && day < 9) || (year == 2021 && month < 9)){
    
    
            System.out.println("no");
        } else {
    
    
            //二月,判断是否是闰年
            if (month == 2){
    
    
                if ((year % 4 ==0 && year % 100 != 0) || year % 400 == 0){
    
    
                    if (day > 29 || day < 1){
    
    
                        System.out.println("no");
                    }else {
    
    
                        System.out.println("yes");
                    }
                }else {
    
    
                    if (day > 28 || day < 1){
    
    
                        System.out.println("no");
                    }else {
    
    
                        System.out.println("yes");
                    }
                }
            }else {
    
    
                if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12){
    
    
                    if (day > 31 || day < 1){
    
    
                        System.out.println("no");
                    }else {
    
    
                        System.out.println("yes");
                    }
                }else {
    
    
                    if (day > 30 || day < 1){
    
    
                        System.out.println("no");
                    }else {
    
    
                        System.out.println("yes");
                    }
                }
            }
        }
    }
}

三、笔记

  1. 如果是4的倍数,该年份一般是闰年;如果不是4的倍数,该年份一般是平年。公历年份是整百数的必须是400的倍数才是闰年,反之则是平年。
  2. 闰年的判断编程是if (year%400==0||year%100!=0&&year%4 == 0)。
  3. 条件:
    能被4整除且不能被100整除
    能被400整除

猜你喜欢

转载自blog.csdn.net/m0_65144570/article/details/127098718