【CSP】【Java】日期计算(三种方法--Java对象--数组--暴力)

Java方法

创建一个Calendar对象,运用他的 Year .DAY_OF_YEAR;
.MONTH .DAY_OF_MONTH;

package _2_13_计算日期;

import java.util.Calendar;
import java.util.Scanner;

public class Main_Java{
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int y = scanner.nextInt();
		int d = scanner.nextInt();
		Calendar calendar = Calendar.getInstance();
		calendar.clear();
		calendar.set(Calendar.YEAR, y);
		calendar.set(Calendar.DAY_OF_YEAR, d);
		//+1一定要放在括号的外面。
		System.out.println(calendar.get(Calendar.MONTH)+1);
		System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
	}
}

创建数组法

思路
把12个月份的天数都放到一个数组里
如果count数大于数组的第一个数,则count值减去数组的第一个数
直到count数小于数组的某一个数,月份就等于i+1,day就等于count

package _2_13_计算日期;

import java.util.Scanner;

/**
 把12个月份的天数都放到一个数组里
 如果count数大于数组的第一个数,则count值减去数组的第一个数
直到count数小于数组的某一个数,月份就等于i+1,day就等于count
 */

public class Main_数组 {
	public static void main(String[] args) {
		int[] days = {31,28,31,30,31,30,31,31,30,31,30,31};
		
		int year = 0, count = 0;
		int m = 0, d = 0;
		Scanner scanner = new Scanner(System.in);
		year = scanner.nextInt();
		count = scanner.nextInt();
		if((year%4==0&&year%100!=0)||year%400==0){
			days[1] = 29;
		} else {
			days[1] = 28;
		}
		
		for (int i = 0; i < days.length; i++) {
			if(count > days[i]){
				count -= days[i];
				
			} else {
				m = i+1;
				d = count;break;
			}
		}
		System.out.println(m);
		System.out.println(d);
	}
}

史上最笨的方法

package _2_13_计算日期;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		int year = scanner.nextInt();
		int count = scanner.nextInt();
		
		int flag = 0;
		
		if((year%4==0&&year%100!=0)||year%400==0){
			flag = 1;
		}
		
		if(flag == 0){//非闰年
			if(count>0&&count<=31){
				System.out.println(1);
				System.out.println(count);
			} else if(count>31&&count<=59){
				System.out.println(2);
				System.out.println(count-31);
			} else if(count > 59 && count <= 90){
				System.out.println(3);
				System.out.println(count-59);
			} else if(count > 90 && count <= 120){
				System.out.println(4);
				System.out.println(count-90);
			} else if(count > 120 && count <= 151){
				System.out.println(5);
				System.out.println(count-120);
			} else if(count > 151 && count <= 181){
				System.out.println(6);
				System.out.println(count-151);
			} else if(count > 181 && count <= 212){
				System.out.println(7);
				System.out.println(count-181);
			} else if(count > 212 && count <= 243){
				System.out.println(8);
				System.out.println(count-212);
			} else if(count > 243 && count <= 273){
				System.out.println(9);
				System.out.println(count-243);
			} else if(count > 273 && count <= 304){
				System.out.println(10);
				System.out.println(count-273);
			} else if(count > 304 && count <= 334){
				System.out.println(11);
				System.out.println(count-304);
			} else if(count > 334 && count <= 365){
				System.out.println(12);
				System.out.println(count-334);
			}
		} else {
			if(count>0&&count<=31){
				System.out.println(1);
				System.out.println(count);
			} else if(count>31&&count<=60){
				System.out.println(2);
				System.out.println(count-31);
			} else if(count > 60 && count <= 91){
				System.out.println(3);
				System.out.println(count-60);
			} else if(count > 91 && count <= 121){
				System.out.println(4);
				System.out.println(count-91);
			} else if(count > 121 && count <= 152){
				System.out.println(5);
				System.out.println(count-121);
			} else if(count > 152 && count <= 182){
				System.out.println(6);
				System.out.println(count-152);
			} else if(count > 182 && count <= 213){
				System.out.println(7);
				System.out.println(count-182);
			} else if(count > 213 && count <= 244){
				System.out.println(8);
				System.out.println(count-213);
			} else if(count > 244 && count <= 274){
				System.out.println(9);
				System.out.println(count-244);
			} else if(count > 274 && count <= 305){
				System.out.println(10);
				System.out.println(count-274);
			} else if(count > 305 && count <= 335){
				System.out.println(11);
				System.out.println(count-305);
			} else if(count > 335 && count <= 366){
				System.out.println(12);
				System.out.println(count-335);
			}
		}
		
	}

}

发布了99 篇原创文章 · 获赞 18 · 访问量 3716

猜你喜欢

转载自blog.csdn.net/alovelypeach/article/details/104872949
今日推荐