系统会随机给你两个日期(yyyy-MM-dd),求出两个日期的具体相差天数

计算两日期间天数差
本文介绍了一个Java程序,该程序能够接收两个用户输入的日期,并计算这两个日期之间的天数差。通过使用SimpleDateFormat解析输入的日期字符串,并利用Date对象的getTime方法计算毫秒值差来实现这一功能。
package com.jn.test;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
/*
 * 系统会随机给你两个日期(yyyy-MM-dd),求出两个日期的具体相差天数
 */
public class Days {
	public static int differentDaysByMillisecond(Date date1,Date date2){
		/*
		 * 通过getTime方法可以将一个日期类型转换为long类型的毫秒值
		 */
	 int days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
	 return days;
	 }

	public static void main(String[] args) {
		
	 Scanner sc = new Scanner(System.in);
	 System.out.println("请输入第一个日期(yyyy-MM-dd格式):");
	 String dateStr = sc.nextLine();
	 System.out.println("请输入第二个日期(yyyy-MM-dd格式):");
	 String dateStr2 =sc.nextLine();
	 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
	 try {	
	  Date date = format.parse(dateStr);
	  Date date2 = format.parse(dateStr2);

	  System.out.println("两个日期的差距:" + differentDaysByMillisecond(date,date2));
	 } catch (ParseException e) {
	  e.printStackTrace();
	 } 
	 }
}

WITH tmp AS ( SELECT /*+parallel(32)*/ 医疗机构名称, register_no, 个人编号, 姓名, 险种, 诊断, 入院日期, 出院日期, to_char(处方日期, 'yyyy-mm-dd hh24:mi:ss') AS DT1, 医保目录名称 AS 项目名称, SUM(数量) AS sl1, SUM(金额) AS je1, SUM(符合医保金额) AS fhyb FROM H32132200401_2105_2412 WHERE 医保目录名称 IN ('数字化摄影(DR)' ,'磁共振平扫' ,'多排螺旋CT平扫', '多排螺旋CT增强扫描') AND 自付比例 != 1 AND 数量 != 0 AND 医保项目等级 IN ('甲类', '乙类') GROUP BY 医疗机构名称, register_no, 个人编号, 姓名, 险种, 诊断, 入院日期, 出院日期, to_char(处方日期, 'yyyy-mm-dd hh24:mi:ss'), 医保目录名称 ) SELECT /*+parallel(32)*/ a.*, b.项目名称 AS 医保目录名称2, b.sl1 AS 数量2, b.je1 AS 金额2, b.fhyb AS 符合医保金额 FROM ( SELECT /*+parallel(32)*/ 医疗机构名称, register_no, 住院门诊号, 病历号, 个人编号, 姓名, 险种, 身份证, 统筹区域, 科室名称, 诊断, 主诊医师名称, 入院日期, 出院日期, to_char(出院日期, 'yyyy') AS 年, to_char(处方日期, 'yyyy-mm-dd hh24:mi:ss') AS 项目使用日期, LISTAGG(DISTINCT 医保目录名称, ',') AS 医保目录名称1, SUM(数量) AS 数量1, SUM(金额) AS 金额1 FROM H32132200401_2105_2412 WHERE 医保目录名称 IN ('数字化摄影(DR)' ,'磁共振平扫' ,'多排螺旋CT平扫', '多排螺旋CT增强扫描') AND 医保项目等级 IN ('甲类', '乙类') AND 数量 != 0 GROUP BY 医疗机构名称, register_no, 住院门诊号, 病历号, 个人编号, 姓名, 险种, 身份证, 统筹区域, 科室名称, 诊断, 主诊医师名称, 入院日期, 出院日期, to_char(出院日期, 'yyyy'), to_char(处方日期, 'yyyy-mm-dd hh24:mi:ss') ) a JOIN tmp b ON a.医疗机构名称 = b.医疗机构名称 AND a.register_no = b.register_no AND a.项目使用日期 = b.DT1 AND a.个人编号 = b.个人编号 -- 关键修改:三天内不同时间的检查(排除同一次检查) AND a.项目使用日期 BETWEEN b.处方日期 - 3 AND b.处方日期 + 3 AND a.项目使用日期 <> b.处方日期; -- 排除完全相同的时间点 ;有报错 怎么修改
最新发布
08-21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值