在做房租统计时,必然牵涉到一个问题:租期开始时间为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技术开发的用于管理房屋出租业务的应用程序。这个系统主要目的是为房东、租客和管理人员提供一个便捷的平台来处理租房相关的事务。下面将详细介绍这个系统的相关知识点。 1. **...
《房租租赁系统设计与实现——基于Java技术》 在当今社会,随着城市化进程的加快,租房已成为许多人的生活常态。为了高效、便捷地管理房屋租赁事务,开发一套房租租赁系统显得尤为重要。本项目以“java毕设房租租赁...
基于java移动电费房租管理系统设计与实现
毕业设计javajsp移动电费房租管理系统ssm-qkrp源码含文档工具包 后台是ssm框架,页面是jsp,数据库mysql,jdk1.8,开发工具用ecplise、myecplise、sts、idea都可以 基于Web的巴州移动电费房租管理系统的设计与实现 ...
参数`Graphics graphics`用于指定打印时使用的图形环境;`PageFormat pf`则用于指定打印页面的格式;`pageIndex`表示当前打印的是哪一页。 ##### 4. 打印逻辑 ```java String receiptTitle = "收款收据"; String ...
本项目是一款基于Java语言的威尔逊房租租赁平台,包含311个文件,涵盖263个Java源文件、37个XML配置文件、4个YAML文件、3个Markdown文件、2个文本文件、1个Git忽略文件和1个许可证文件。平台分为移动端和后台管理...
java课程设计基于javaweb的房租租赁管理系统(95分以上高分设计).zip 下载就可以使用,数据库资料完整。java课程设计基于javaweb的房租租赁管理系统(95分以上高分设计).zip 下载就可以使用,数据库资料完整。java...
住房房租 管理员角色功能:管理员登陆,房源信息查询,房源信息增删改查,在租列表,查看租房合同,修改 租房合同,退租列表,退租申请,审批看房申请,填写合同,查看退租申请,收租管理,查看代缴,查看已经缴纳的 租金,日程...
项目:Java房租管理系统及源代码 房租管理系统是一个用Java编写的项目,用于维护公寓或房屋预订记录。整个系统是在NetBeans IDE中制作的。该系统后端支持MySQL数据库。该系统支持此处所需的所有功能。 关于系统 这...
Java开发的房屋出租系统源代码是一套基于Java技术构建的应用程序,用于管理和操作房屋租赁业务。这个系统包含数据库支持,意味着它可以存储、检索和处理大量的房源信息、租户数据以及租赁交易记录。以下是对该系统...
北京市房租出租数据,北京市房租出租数据,北京市房租出租数据
《基于SSM的房屋租赁管理系统设计与实现》 在当今数字化时代,房屋租赁管理系统已经成为房产行业不可或缺的一部分。本文将深入探讨一个基于SSM(Spring、SpringMVC、MyBatis)框架的系统设计与实现,旨在提高房屋...
在Java编程语言中,开发一个豪宅房租计算脚本涉及到多个核心知识点,这些知识点不仅涵盖了基本的编程概念,还包括了面向对象的设计原则以及数据处理。以下是对这个项目的一些详细解释: 1. **Java基础**:首先,`...
在日常生活中,房租结算单是租赁双方进行房租及公用事业费用清算的重要凭证,对于房东和租户来说都具有重要意义。本文将详细解析房租结算单的主要构成部分,并探讨其在房屋租赁管理中的实际应用。 首先,房租结算单...
房租收据打印专家是一款处理房租收据打印的软件,软件支持房租收据打印,同时支持管理收据统计记账,不仅功能非常实用,而且操作简单易用,添加记录的运行速度十分迅速。软件界面美观简洁、简单全面、实用方便,无需...
计算机毕业设计基于Springboot+vue实现的房租租赁管理系统源代码+数据库 sql/hlms 数据库导入 back/HouseLeaseManagerSystem 后端启动 front/admin 后台启动
JAVA房屋租赁系统源码 房屋房源出租管理系统源码 住房房租 管理员角色功能:管理员登陆,房源信息查询,房源信息增删改查,在租列表,查看租房合同,修改 租房合同,退租列表,退租申请,审批看房申请,填写合同,查看退租...
其次,系统的核心功能——房租收据生成,应当具备以下特性:自动计算房租,根据租赁周期(如按月或按季度)自动生成账单;自动提醒租户付款,可以通过电子邮件或短信的形式发送通知;记录每一次支付详情,包括金额、...
"房租租赁系统"是一个针对房屋出租业务的管理软件,它主要涵盖了前端用户界面与后端服务器的数据交互。这个系统虽然简单,但是包含了完整的租赁流程管理功能,为房主和租客提供便捷的服务。 首先,从数据库的角度来...