个人名片:
博主:酒徒ᝰ.
个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。
专栏: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天)。