Спрос Описание:
Написание программ на Java, введите дату в консоли, вычислить дату, соответствующий день года.
Реализация идей:
(1) объявить переменный год, месяц и дату, для хранения дат в год, месяц, день.
(2) объявления переменных дней, для хранения накопленного количества дней.
(3) получение переменного года сканера на входе даты пользователя, и, месяц и назначение даты.
(4) Введите первые несколько дней с даты рассчитывается с использованием текущего входного года, в том числе вычисления количества дней в двух частях: накопленное количество дней до всего войти в месяц 1 месяц, 2 ввода месяца общее число дней прошло. Например, введите дату 2020, 7 мая. Во- первых рассчитать количество дней для всех 2020 с января по апрель, количество дней в январе 2020 года, что соответствует 31 дней, количество дней в феврале (2020 високосный год) , что соответствует 29 дням. Март соответствующих дней 31 дней 30 дней дней в апреле, в это время, не может содержать количество дней в мае января 2020 года по апрелю все накопленное количество дней до 121 дней. Продолжать накапливать через несколько дней после того, как семь дней мая прошло, и конечный результат 2020 7 мая до 128 дней текущего года.
(5) Число дней кумулятивные правила расчета цикла необходимо множество раз подряд, аккумулирующих количество дней в месяц до месяца с использованием для структуры петли для достижения.
① выражение. Месяц предыдущий месяц Накопление потребность, переменная я объявлена в качестве управляющей переменной цикла, в соответствии с результатами работы, рекомендуется, чтобы установить начальное значение я равен 1, это возможно для цикла 3 по выражению:
表达式1:int i = 1
表达式2:i < month
表达式3:i++
② цикла. Используя структуру переключателя, я рассчитывается соответствующий месяц и число дней аккумулировать, когда я 2, требуется определяется високосный год.
(6) использование результатов шага расчета, продолжает накапливать количество дней прошли месяц.
(7) System.out.printlf (); для форматирования результата операции выводится.
Код реализации:
import java.util.Scanner;
public class kkk {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//年月日
int year,month,date;
int days = 0; //天数
//接收用户输入的年月日
System.out.println("请输入日期:");
year = sc.nextInt();
month = sc.nextInt();
date = sc.nextInt();
//使用循环结构,依次累加每月的天数(不包括输入月份当中的月份)
for(int i = 1; i < month; i++) {
//使用switch结构,实现每月天数计算
switch(i) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days +=31;
break;
case 4:
case 6:
case 9:
case 11:
days +=30;
break;
case 2:
//闰年判断
if((year % 4 == 0 && year % 100!=0)||(year % 400 == 0)){
days += 29;
break;
}else {
days += 28;
break;
}
}
}
//累加输入日期中当前月份已过的天数
days += date;
System.out.printf("%d年%d月%d日是当前年的第%d天",year,month,date,days);
}
}