蓝桥杯日期问题常考,java提供了日期类很方便;
//日历类
Calendar c = Calendar.getInstance(); // 获取实例化对象
Date date =c.getTime(); // 日期类得到c的时间;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss"); // 修改格式
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-mm-dd");
String now =sdf.format(date); // 以字符串方式得到时间,用sdf修改date得到自己希望的格式
System.out.println(now); // 输出当前时间/日期
例题:
从键盘输入一个日期,格式为yyyy-M-d
要求计算该日期与1949年10月1日距离多少天
例如:
用户输入了:1949-10-2 程序输出:1
用户输入了:1949-11-1 程序输出:31
代码:
public class Demo1 { static long sum = 0; public static void main(String[] args) { Scanner sc = new Scanner(System.in); String next = sc.next(); String[] s = next.split("-");// 以 - 为分界拆分为字符串数组 int year = Integer.parseInt(s[0]); int month = Integer.parseInt(s[1]); int day = Integer.parseInt(s[2]); // 日期类 // 取得两个到元年的时间相减变成天数 Date d1 = new Date(year, month, day); long t1 = d1.getTime();// 返回的是毫秒值 Date d2 = new Date(1949, 10, 1); long t2 = d2.getTime(); long sum = (t1 - t2) / (1000 * 60 * 60 * 24) + 1; // 转化为天数 System.out.println(sum); } }
错误或者不足的地方欢迎指正!!
最后分享一个喜欢的句子: