import java.util.Scanner;
public class HelloWorld {
	public static void main(String[] args){
	//	Scanner s = new Scanner(System.in);
	//	System.out.println("请输入一个数字");
	//	int num = s.nextInt();
		int SUM = Caluater_date_sub_day(2009,1,25,2008,1,10);
		System.out.println(SUM);
	}
	//判断闰年平年
	public static boolean isLeap(int y){
		if((y % 4 == 0 && y % 100 != 0) || y % 400 == 0)
			return true ;
		return false ;
	}
	//判断一年已经过了多少天
	public static int GetDay(int y , int m , int d){
		int sum = 0 ;
		switch(m){
		case 12 : sum += 31 ;
		case 11 : sum += 30 ;
		case 10 : sum += 31 ;
		case 9  : sum += 30 ;
		case 8  : sum += 31 ;
		case 7  : sum += 31 ;
		case 6  : sum += 30 ;
		case 5  : sum += 31 ;
		case 4  : sum += 30 ;
		case 3  : sum += 31 ;
		case 2  :
				if(isLeap(y) == true)
					sum += 29 ;
				else
					sum += 28 ;
		case 1  : sum += 31 ;
		sum += d ;
		}
		return d ;
	}
	//判断一年还剩下多少天
	public static int OthearDay(int y , int m , int d)
	{
		if(isLeap(y) == true)
		   return 366 - GetDay(y , m , d);
		return 365 - GetDay(y, m, d) ;
	}
	//判断两个日期相差的天数
	public static int Caluater_date_sub_day(int y1,int m1,int d1,int y2,int m2 ,int d2)
	{
		if(y1 == y2){
			int day1 = GetDay(y1, m1, d1) - GetDay(y2, m2, d2) ;
			return abs(day1);
		}
		else if(y1 < y2){
			int sum1 = OthearDay(y1, m1, d1) ;
			int sum2 = GetDay(y2, m2, d2) ;
			int sum3 = 0 ;
			for(int i = y1 + 1 ; i < y2 ; i++){
				if(isLeap(i))
					sum3+=366 ;
				else
					sum3+=365 ;
			}
			return sum1+sum2+sum3 ;
		}else
		{
			int sum1 = GetDay(y1, m1, d1) ;
			int sum2 = OthearDay(y2, m2, d2) ;
			int sum3 = 0 ;
			for(int i = y2 + 1 ; i < y1 ; i++){
				if(isLeap(i))
					sum3+=366 ;
				else
					sum3+=365 ;
			}
			return sum1+sum2+sum3 ;
		}
	}
	//计算一个数的绝对值
	public static int abs(int num){
		return num > 0 ? num : -num ;
	}
}

Java函数2:计算两个日期相差的天数的更多相关文章

  1. MySQL计算两个日期相差的天数、月数、年数

    MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF ...

  2. 计算两个日期相差的天数 js php日期 减一年

    计算两个日期相差的天数 //sDate1和sDate2是yyyy-MM-dd格式 function dateDiff(sDate1, sDate2) { var aDate, oDate1, oDat ...

  3. mysql计算两个日期相差的天数

    DATEDIFF() 函数可以返回两个日期之间的天数. 如下: SELECT DATEDIFF('2015-06-29','2015-06-12') AS DiffDate 结果得17 SELECT ...

  4. Java 计算两个日期相差的天数

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

  5. Java计算两个日期相差的天数

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

  6. PGSQL-通过SQL语句来计算两个日期相差的天数

    这是本人第一次写的~我在某次需求中遇到一个问题,如何在SQL语句中计算出两个日期的天数,然后用那个结果来进行数据的筛选呢?通过网上查阅了资料发现 date_part('day', cast(time1 ...

  7. php计算两个日期相差的天数

    /** * 时间差计算 * * @param Timestamp $time * @return String Time Elapsed */ function time2Units ($time,$ ...

  8. jquery 计算两个日期相差的天数

    <!DOCTYPE html> <html> <head> <meta charset = "utf-8"> <title&g ...

  9. Java技巧——比较两个日期相差的天数

    Java技巧——比较两个日期相差的天数 摘要:本文主要记录了在Java里面如何判断两个日期相差的天数. 判断两个Date类型的日期之间的天数 通过计算毫秒数判断: public static void ...

随机推荐

  1. bootstrap插件fileinput.js 显示无法上传失败

    哪怕图片已经传到服务器上了 依然显示出错 // 处理完成后,必须返回一个json数据,否则会报错误 JSONObject jsonObject = new JSONObject(); jsonObje ...

  2. 修改原生单选框样式(vue单选组件)

    一.效果如图 二.实现 修改单选样式 //html <div class="radio-wrap"> <input type="radio" ...

  3. 2. struct A 和 typedef struct A

    2. struct A 和 typedef struct A 2.1 struct A struct A{}定义一个名为struct A的结构体. 下例定义了struct A同时,声明了两个变量(注意 ...

  4. HashSet<T>的妙用

    HashSet<int> hs = new HashSet<int>(); var ret = hs.Add(1);  //ret==true var ret2 = hs.Ad ...

  5. Docker常见仓库MySQL

    MySQL 基本信息 MySQL 是开源的关系数据库实现. 该仓库提供了 MySQL 各个版本的镜像,包括 5.6 系列.5.7 系列等. 使用方法 默认会在 3306 端口启动数据库. $ sudo ...

  6. Python3 CGI编程

    什么是CGI CGI 目前由NCSA维护,NCSA定义CGI如下: CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户 ...

  7. Bootstrap3 表单-基本表单

    单独的表单控件会被自动赋予一些全局样式.所有设置了 .form-control 类的 <input>.<textarea> 和 <select> 元素都将被默认设置 ...

  8. git > 2.3 实现同步盘的功能

    话不多说,简单粗暴 http://stackoverflow.com/questions/35643201/how-to-set-up-a-sychronous-directory-in-remote ...

  9. Mac小技巧:快速查看指定应用程序的所有窗口

    我们知道在Mac中快速在系统所有程序中切换得快捷键为: cmd + tab 不过有时我们需要快速查看某一个程序的所有窗口,那又该如何呢? 以下方法在MacOS 10.12中测试成功! Mac默认该功能 ...

  10. Web自动化框架LazyUI使用手册(4)--控件抓取工具Elements Extractor详解(批量抓取)

    概述 前面的一篇博文详细介绍了单个控件抓取的设计思路&逻辑以及使用方法,本文将详述批量控件抓取功能. 批量抓取:打开一个web页面,遍历页面上所有能被抓取的元素,获得每个元素的iframe.和 ...