`

Java实现房租统计时指定月份的租赁天数

    博客分类:
  • Java
阅读更多

在做房租统计时,必然牵涉到一个问题:租期开始时间为2016-5-25到2017-6-25号,计算2016年5/6月份或者其他月份的租赁天数,这时,租赁天数可以能是那个月份的所有天数,也可以只能那个月份的一部分,如月中租的或者月中结束的。这几天就碰到了,就写了个简单的实现了最基本的计算,往后碰到问题时再修正。

代码如下(其中有些方法可以参考“Java中的日期常用格式化(二)”的对应方法):

/**
 * 该方法用来计算某个月的实际租赁天数
 * @param dateStr:当前年份和月份
 * @param startTime:开始时间
 * @param endTime:结束时间
 * 分四种情况:
	1、开始日期和结束日期在同一个月份(同年同月),那么用结束日期减去开始日期
	2、开始日期为当前月份,但是结束日期不是的,就用指定日期-开始日期;
	3、结束日期为当前月份,但是开始日期不是的,那么就去当前月份的所用数据。
	4、要是开始日期和结束日期都不是当前的,那么就直接取当前月份的天数。
 * **/

private Integer getRenDay(String strDate,String startTime,String endTime){
	Integer day=0;
	String firstDayStr = com.tzj.tsp.util.Time.getFirstDayEndForMonth(strDate);
	//1、判断给定的日期是否处于给定的时间段之间
	boolean isBetween = isBetweenSpace(firstDayStr,startTime,endTime);
	if(isBetween){//必须在两个日期之间才能进行判断
		//2、判断制定日期是开始日期和结束日期是否为同年同于,如:2016-6-15在2016-6-2和2016-6-30之间
		boolean same1 = isTheSamYearAndMonth(strDate,startTime);
		boolean same2 = isTheSamYearAndMonth(strDate,endTime);
		if(same1 && same2){//指定日期与开始日期为同年同月,且与结束日期为同年同月,那么租期则为结束日期-开始日期
			day = com.tzj.tsp.util.Time.dateDiff(startTime,endTime);
			
		}else if(same1 && same2==false){//指定日期与开始日期为同年同月,但与结束日期不是同年同月,那么租期则为指定日期的最后一天-开始日期
			String lastDayStr = com.tzj.tsp.util.Time.getLastDayEndForMonth(strDate);//指定月份最后一天的日期
			day = com.tzj.tsp.util.Time.dateDiff(startTime,lastDayStr);
			
		}else if(same2 && same1==false){//开始日期与指定日期不是同年同月,但结束日期与指定日期是同年同月,那么租期则为:结束日期当天所在天
			//day = com.tzj.tsp.util.Time.dateDiff(firstDayStr,endTime);
			day = com.tzj.tsp.util.Time.day(endTime);
		}else{//三个日期都不在同年同月,那么租期应该是这个月的总天数
			day = com.tzj.tsp.util.Time.getActualMaximum(strDate);
		}
	}
	return day;
}

/**
 * 该方法用来判断两个日期是否为同年同月
 * @param date1:日期1
 * @param date2:日期2
 * @return isTheSame:true-相同 false-不相同
 * **/
public boolean isTheSamYearAndMonth(String date1,String date2){
	boolean isTheSame=false;//不相同
	int year1 = com.tzj.tsp.util.Time.year(date1);
	int year2 = com.tzj.tsp.util.Time.year(date2);
	
	int month1 = com.tzj.tsp.util.Time.month(date1);
	int month2 = com.tzj.tsp.util.Time.month(date2);
	if(year1==year2 && month1== month2){isTheSame=true;}
	return isTheSame;
}

/**
 * 该方法用来判断给定的时间是否在给定的时间段之间
 * @param dateStr:给定的时间,一般为某个月的第一天
 * @param startTime:开始时间
 * @param endTime:结束时间
 * @return isBetween:是否在两个日期之间 true-在两者之间 false-不在两者之间
 * **/
private boolean isBetweenSpace(String strDate,String startTime,String endTime){
	boolean isBetween = false;
	//1、开始日期或者结束日期与指定年月同年同月,那么日期符合条件,否则
	boolean same1 = isTheSamYearAndMonth(strDate,startTime);
	boolean same2 = isTheSamYearAndMonth(strDate,endTime);
	if(same1 || same2){//任何一个为true,都可以符合条件
		isBetween=true;
	}else{
		//2、指定日期必须大于等于开始日期
		int diff1 = com.tzj.tsp.util.Time.dateDiff(startTime,strDate);
		
		//3、指定日期小于等于结束日期
		int diff2 = com.tzj.tsp.util.Time.dateDiff(strDate,endTime);
		if(diff1>=0 && diff2>=0){
			isBetween = true;
		}
	}
	return isBetween;
}

 

 

分享到:
评论

相关推荐

    java房租出租系统

    "Java房租出租系统"是一个基于Java技术开发的用于管理房屋出租业务的应用程序。这个系统主要目的是为房东、租客和管理人员提供一个便捷的平台来处理租房相关的事务。下面将详细介绍这个系统的相关知识点。 1. **...

    房租租赁系统毕设

    《房租租赁系统设计与实现——基于Java技术》 在当今社会,随着城市化进程的加快,租房已成为许多人的生活常态。为了高效、便捷地管理房屋租赁事务,开发一套房租租赁系统显得尤为重要。本项目以“java毕设房租租赁...

    基于java移动电费房租管理系统设计与实现.docx

    基于java移动电费房租管理系统设计与实现

    毕业设计javajsp移动电费房租管理系统ssm-qkrp源码含文档工具包

    毕业设计javajsp移动电费房租管理系统ssm-qkrp源码含文档工具包 后台是ssm框架,页面是jsp,数据库mysql,jdk1.8,开发工具用ecplise、myecplise、sts、idea都可以 基于Web的巴州移动电费房租管理系统的设计与实现 ...

    Java代码生成打印收据

    参数`Graphics graphics`用于指定打印时使用的图形环境;`PageFormat pf`则用于指定打印页面的格式;`pageIndex`表示当前打印的是哪一页。 ##### 4. 打印逻辑 ```java String receiptTitle = "收款收据"; String ...

    基于Java开发的威尔逊房租租赁平台移动端与后台管理系统设计源码

    本项目是一款基于Java语言的威尔逊房租租赁平台,包含311个文件,涵盖263个Java源文件、37个XML配置文件、4个YAML文件、3个Markdown文件、2个文本文件、1个Git忽略文件和1个许可证文件。平台分为移动端和后台管理...

    java课程设计基于javaweb的房屋租赁管理系统(95分以上高分设计).zip

    java课程设计基于javaweb的房租租赁管理系统(95分以上高分设计).zip 下载就可以使用,数据库资料完整。java课程设计基于javaweb的房租租赁管理系统(95分以上高分设计).zip 下载就可以使用,数据库资料完整。java...

    JAVA房屋租赁系统源码 房屋房源出租管理系统源码

    住房房租 管理员角色功能:管理员登陆,房源信息查询,房源信息增删改查,在租列表,查看租房合同,修改 租房合同,退租列表,退租申请,审批看房申请,填写合同,查看退租申请,收租管理,查看代缴,查看已经缴纳的 租金,日程...

    Java房租管理系统及源代码.zip

    项目:Java房租管理系统及源代码 房租管理系统是一个用Java编写的项目,用于维护公寓或房屋预订记录。整个系统是在NetBeans IDE中制作的。该系统后端支持MySQL数据库。该系统支持此处所需的所有功能。 关于系统 这...

    java 开发的房屋出租系统源代码

    Java开发的房屋出租系统源代码是一套基于Java技术构建的应用程序,用于管理和操作房屋租赁业务。这个系统包含数据库支持,意味着它可以存储、检索和处理大量的房源信息、租户数据以及租赁交易记录。以下是对该系统...

    北京市房租出租数据

    北京市房租出租数据,北京市房租出租数据,北京市房租出租数据

    基于SSM的房屋租赁管理系统设计与实现.rar

    《基于SSM的房屋租赁管理系统设计与实现》 在当今数字化时代,房屋租赁管理系统已经成为房产行业不可或缺的一部分。本文将深入探讨一个基于SSM(Spring、SpringMVC、MyBatis)框架的系统设计与实现,旨在提高房屋...

    java代码-java豪宅房租计算脚本

    在Java编程语言中,开发一个豪宅房租计算脚本涉及到多个核心知识点,这些知识点不仅涵盖了基本的编程概念,还包括了面向对象的设计原则以及数据处理。以下是对这个项目的一些详细解释: 1. **Java基础**:首先,`...

    房租结算单.docx

    在日常生活中,房租结算单是租赁双方进行房租及公用事业费用清算的重要凭证,对于房东和租户来说都具有重要意义。本文将详细解析房租结算单的主要构成部分,并探讨其在房屋租赁管理中的实际应用。 首先,房租结算单...

    房租收据打印专家 v3.4.1.zip

    房租收据打印专家是一款处理房租收据打印的软件,软件支持房租收据打印,同时支持管理收据统计记账,不仅功能非常实用,而且操作简单易用,添加记录的运行速度十分迅速。软件界面美观简洁、简单全面、实用方便,无需...

    计算机毕业设计基于Springboot+vue实现的房租租赁管理系统源代码+数据库

    计算机毕业设计基于Springboot+vue实现的房租租赁管理系统源代码+数据库 sql/hlms 数据库导入 back/HouseLeaseManagerSystem 后端启动 front/admin 后台启动

    java房屋租赁系统源码 房屋房源出租管理系统源码数据库 MySQL源码类型 WebForm

    JAVA房屋租赁系统源码 房屋房源出租管理系统源码 住房房租 管理员角色功能:管理员登陆,房源信息查询,房源信息增删改查,在租列表,查看租房合同,修改 租房合同,退租列表,退租申请,审批看房申请,填写合同,查看退租...

    房东的房租管理系统

    其次,系统的核心功能——房租收据生成,应当具备以下特性:自动计算房租,根据租赁周期(如按月或按季度)自动生成账单;自动提醒租户付款,可以通过电子邮件或短信的形式发送通知;记录每一次支付详情,包括金额、...

    房租租赁系统

    "房租租赁系统"是一个针对房屋出租业务的管理软件,它主要涵盖了前端用户界面与后端服务器的数据交互。这个系统虽然简单,但是包含了完整的租赁流程管理功能,为房主和租客提供便捷的服务。 首先,从数据库的角度来...

Global site tag (gtag.js) - Google Analytics