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天
个人代码如有错误,欢迎指正

浙公网安备 33010602011771号