PTA——计算天数

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

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

请添加图片描述

前言

1.简介

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

2.优点

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

一、题目

本题要求编写程序计算某年某月某日是该年中的第几天。

输入格式:
输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。
输出格式:
在一行输出日期是该年中的第几天。

输入样例1:
2009/03/02
输出样例1:
61

输入样例2:
2000/03/02
输出样例2:
62

代码长度限制 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 time = sc.next();
        int x = 1000;
        int y = 10;
        int z = 10;
        int num = 0;
        int month = 0;
        int day = 0;
        for(int i = 0; i < 4; i++){
    
    //2009
            num = num + Integer.parseInt(String.valueOf(time.charAt(i))) * x;
            x = x / 10;
        }
        for(int i = 5; i < 7; i++){
    
    //03
            month = month + Integer.parseInt(String.valueOf(time.charAt(i))) * y;
            y = y / 10;
        }
        for(int i = 8; i < 10; i++){
    
    //02
            day = day + Integer.parseInt(String.valueOf(time.charAt(i))) * z;
            z = z / 10;
        }
        if((num % 4 == 0 && num % 100 != 0) || num % 400 == 0){
    
    
            switch(month){
    
      
                case 1:
                    System.out.println(day);
                    break;
                case 2:
                    System.out.println(31 + day);
                    break;
                case 3:
                    System.out.println(31 + 29 + day);
                    break;
                case 4:
                    System.out.println(31 + 29 + 31 + day);
                    break;
                case 5:
                    System.out.println(31 + 29 + 31 + 30 + day);
                    break;
                case 6:
                    System.out.println(31 + 29 + 31 + 30 + 31 + day);
                    break;
                case 7:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + day);
                    break;
                case 8:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                case 9:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + day);
                    break;
                case 10:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                case 11:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + day);
                    break;
                case 12:
                    System.out.println(31 + 29 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                 
            }
        }else {
    
    
            switch(month){
    
      
                case 1:
                    System.out.println(day);
                    break;
                case 2:
                    System.out.println(31 + day);
                    break;
                case 3:
                    System.out.println(31 + 28 + day);
                    break;
                case 4:
                    System.out.println(31 + 28 + 31 + day);
                    break;
                case 5:
                    System.out.println(31 + 28 + 31 + 30 + day);
                    break;
                case 6:
                    System.out.println(31 + 28 + 31 + 30 + 31 + day);
                    break;
                case 7:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + day);
                    break;
                case 8:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                case 9:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + day);
                    break;
                case 10:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                case 11:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + day);
                    break;
                case 12:
                    System.out.println(31 + 28 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + 30 + 31 + day);
                    break;
                 
            }
        }
        
    }
}

三、笔记与分析

这题不算难,考的是你对基础认识的了解。
注意闰年(2月),分开闰月(30天与31天)。

猜你喜欢

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