Java实验 距离元旦的天数

题目要求

使用Calendar类计算现在距离下一次元旦的天数。

代码

package test4;

import java.util.Calendar;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class test2 {
	public static void main(String[] args) throws ParseException {
		// TODO 自动生成的方法存根
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//设置日期的格式
		Calendar c1 = Calendar.getInstance();//创建现在的时间对象
		Calendar c2 = Calendar.getInstance();//创建2023.01.01的时间对象
		c2.setTime(sdf.parse("2023-01-01"));//给c2赋值2023-01-01
		long time1 = c1.getTimeInMillis();//计算现在到1970.01.01的ms
		long time2 = c2.getTimeInMillis();//计算2023.01.01到1970.01.01的ms
		long days = (time2 - time1)/(1000*3600*24);//将ms转化成日
		System.out.print("距离2023年1月1日还有"+(days+1)+"天");
	}
}

运行结果(今天是2022.5.21)

距离2023年1月1日还有225天

思考

如何不使用API直接编程计算上述的天数差距。

代码

package think4;

import java.util.Scanner;

public class think2 {
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Scanner input = new Scanner(System.in);
		System.out.print("请输入今天的日期(格式为yyyy MM dd):");
		int year = input.nextInt();
		int month = input.nextInt();
		int day = input.nextInt();
		int[] mon = {31,28,31,30,31,30,31,31,30,31,30,31};
		int days=0;
		for (int i=0;i<month-1;i++) {
			days += mon[i];
		}
		int dis = 365 - days - day + 1;
		System.out.println("距离2023年元旦还有"+dis+"天");
	}
}

运行结果

请输入今天的日期(格式为yyyy MM dd):2022 5 21
距离2023年元旦还有225天

个人代码如有错误,欢迎指正

posted @ 2022-05-21 00:03  柏木カケル  阅读(364)  评论(0)    收藏  举报