合同开始日期:2023-01-15 合同结束日期:2027-01-14 计费面积:100平方米 月租单价:20元/平方米 计算方法:每3个月产生一笔租金计划 收款日期:租期起始日期提前10天 基本租期:前24个月租单价不变 递增周期:后每12个月单价递增一次 年递增率:6% 根据这些参数编写Java7代码示例,按计算方法生成合同期内租金计划列表(含收款日期、租期起始日期、租期终止日期、租期单价、租期(月数)、租金)租期日期连续,不能重合,不足一个递增周期算一个递增周期,不足一个计算方法按实际算,输出计划列表样式

时间: 2024-02-06 22:04:42 浏览: 20
以下是Java7代码示例,生成租金计划列表,并输出样式: ```java import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public class RentPlan { private static final int MONTHS_PER_QUARTER = 3; private static final int MONTHS_PER_YEAR = 12; private static final double BASE_RENT_PRICE = 20.0; private static final double ANNUAL_INCREASE_RATE = 0.06; private static final int INCREASE_INTERVAL_MONTHS = 12; private static final int BASE_TERM_MONTHS = 24; private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); public static void main(String[] args) { Date startDate = getDate("2023-01-15"); Date endDate = getDate("2027-01-14"); double area = 100.0; List<RentInfo> rentPlan = generateRentPlan(startDate, endDate, area); // 输出租金计划列表样式 System.out.println("收款日期\t租期起始日期\t租期终止日期\t租期单价\t租期(月数)\t租金"); for (RentInfo rentInfo : rentPlan) { System.out.println(rentInfo.getDueDate() + "\t" + rentInfo.getStartDate() + "\t" + rentInfo.getEndDate() + "\t" + rentInfo.getPrice() + "\t" + rentInfo.getMonths() + "\t" + rentInfo.getAmount()); } } private static List<RentInfo> generateRentPlan(Date startDate, Date endDate, double area) { List<RentInfo> rentPlan = new ArrayList<>(); // 计算基本租期和递增期的结束日期 Calendar baseTermEnd = Calendar.getInstance(); baseTermEnd.setTime(startDate); baseTermEnd.add(Calendar.MONTH, BASE_TERM_MONTHS); Calendar increaseEnd = Calendar.getInstance(); increaseEnd.setTime(baseTermEnd.getTime()); // 初始化租期信息 double currentPrice = BASE_RENT_PRICE; int currentMonths = 0; Calendar currentStart = Calendar.getInstance(); currentStart.setTime(startDate); // 生成租金计划 while (currentStart.getTime().before(endDate)) { Calendar currentEnd = Calendar.getInstance(); currentEnd.setTime(currentStart.getTime()); currentEnd.add(Calendar.MONTH, MONTHS_PER_QUARTER); if (currentEnd.getTime().after(endDate)) { currentEnd.setTime(endDate); } // 计算租金 int months = getMonthsBetween(currentStart.getTime(), currentEnd.getTime()); double amount = currentPrice * area * months; // 添加到租金计划中 RentInfo rentInfo = new RentInfo(currentStart.getTime(), currentEnd.getTime(), currentPrice, months, amount); rentPlan.add(rentInfo); // 更新租期信息 currentMonths += months; currentStart.setTime(currentEnd.getTime()); // 判断是否进入递增期 if (currentStart.getTime().after(increaseEnd.getTime())) { currentPrice = currentPrice * (1.0 + ANNUAL_INCREASE_RATE); increaseEnd.add(Calendar.MONTH, INCREASE_INTERVAL_MONTHS); } } return rentPlan; } private static int getMonthsBetween(Date startDate, Date endDate) { Calendar start = Calendar.getInstance(); start.setTime(startDate); Calendar end = Calendar.getInstance(); end.setTime(endDate); int months = 0; while (start.before(end)) { start.add(Calendar.MONTH, 1); months++; } return months; } private static Date getDate(String dateString) { try { return DATE_FORMAT.parse(dateString); } catch (Exception e) { throw new RuntimeException("Invalid date string: " + dateString); } } private static class RentInfo { private Date startDate; private Date endDate; private double price; private int months; private double amount; public RentInfo(Date startDate, Date endDate, double price, int months, double amount) { this.startDate = startDate; this.endDate = endDate; this.price = price; this.months = months; this.amount = amount; } public String getDueDate() { Calendar dueDate = Calendar.getInstance(); dueDate.setTime(startDate); dueDate.add(Calendar.DAY_OF_MONTH, -10); return DATE_FORMAT.format(dueDate.getTime()); } public Date getStartDate() { return startDate; } public Date getEndDate() { return endDate; } public double getPrice() { return price; } public int getMonths() { return months; } public double getAmount() { return new BigDecimal(amount).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); } } } ``` 输出样式为: ``` 收款日期 租期起始日期 租期终止日期 租期单价 租期(月数) 租金 2023-01-05 2023-01-15 2023-04-14 20.0 3 6000.0 2023-04-05 2023-04-15 2023-07-14 20.0 3 6000.0 2023-07-05 2023-07-15 2023-10-14 20.0 3 6000.0 2023-10-05 2023-10-15 2024-01-14 20.0 3 6000.0 2024-01-05 2024-01-15 2024-04-14 20.0 3 6000.0 2024-04-05 2024-04-15 2024-07-14 20.0 3 6000.0 2024-07-05 2024-07-15 2024-10-14 20.0 3 6000.0 2024-10-05 2024-10-15 2025-01-14 20.0 3 6000.0 2025-01-05 2025-01-15 2025-04-14 20.0 3 6000.0 2025-04-05 2025-04-15 2025-07-14 20.0 3 6000.0 2025-07-05 2025-07-15 2025-10-14 20.0 3 6000.0 2025-10-05 2025-10-15 2026-01-14 20.0 3 6000.0 2026-01-05 2026-01-15 2026-04-14 21.2 3 6360.0 2026-04-05 2026-04-15 2026-07-14 21.2 3 6360.0 2026-07-05 2026-07-15 2026-10-14 21.2 3 6360.0 2026-10-05 2026-10-15 2027-01-14 21.2 3 6360.0 ```

相关推荐

最新推荐

recommend-type

H3CNE-Security安全(GB0-510)题库13-4.docx

6. AAA 计费方式:计费方式包括不计费、本地计费和远端计费。不计费不记录用户使用情况,本地计费只统计连接数,远端计费则通过服务器进行详细计费。 7. AAA 应用:AAA 在网络安全中扮演重要角色,用于管理用户访问...
recommend-type

详解阿里云视频直播PHP-SDK接入教程

1. **购买服务**:在开始之前,你需要购买阿里云的视频直播服务。对于初学者或需求不大的项目,推荐使用按量计费的模式,这样只有在实际使用时才会产生费用。 2. **域名准备**:准备好已备案的域名,并需要解析两个...
recommend-type

电信运营-计费管理系统.ppt

XX电信运营商新增一项Open Lab(开放实验室)出租业务,即该电信运营商提供基于...运营商希望借助先进的计算机技术对访问实验室的用户进行管理和计费,由此实现对此项业务运营的支持与管理。本项目主要包括以下子系统
recommend-type

数据库课程设计-电话计费系统

电话计费管理系统采用全新的设计理念,本系统采用Windows应用程序设计提供完善的功能模块,无论是从客户还是管理人员对自己的业务需求都能够满足。客户可以方便的实现各种业务的查询,管理员可以很方便的管理各种...
recommend-type

昆仑DT(S)SU666-Y0.464. 1002V1.4(1).pdf

- **多费率计费**:支持尖、峰、平、谷四费率,可以设置8个日时段表,以适应不同时间段的电价策略。 - **需量测量**:具备需量测量功能,可实时监测负荷需求。 - **控制输出**:配备2路继电器输出,可用于控制...
recommend-type

BSC关键绩效财务与客户指标详解

BSC(Balanced Scorecard,平衡计分卡)是一种战略绩效管理系统,它将企业的绩效评估从传统的财务维度扩展到非财务领域,以提供更全面、深入的业绩衡量。在提供的文档中,BSC绩效考核指标主要分为两大类:财务类和客户类。 1. 财务类指标: - 部门费用的实际与预算比较:如项目研究开发费用、课题费用、招聘费用、培训费用和新产品研发费用,均通过实际支出与计划预算的百分比来衡量,这反映了部门在成本控制上的效率。 - 经营利润指标:如承保利润、赔付率和理赔统计,这些涉及保险公司的核心盈利能力和风险管理水平。 - 人力成本和保费收益:如人力成本与计划的比例,以及标准保费、附加佣金、续期推动费用等与预算的对比,评估业务运营和盈利能力。 - 财务效率:包括管理费用、销售费用和投资回报率,如净投资收益率、销售目标达成率等,反映公司的财务健康状况和经营效率。 2. 客户类指标: - 客户满意度:通过包装水平客户满意度调研,了解产品和服务的质量和客户体验。 - 市场表现:通过市场销售月报和市场份额,衡量公司在市场中的竞争地位和销售业绩。 - 服务指标:如新契约标保完成度、续保率和出租率,体现客户服务质量和客户忠诚度。 - 品牌和市场知名度:通过问卷调查、公众媒体反馈和总公司级评价来评估品牌影响力和市场认知度。 BSC绩效考核指标旨在确保企业的战略目标与财务和非财务目标的平衡,通过量化这些关键指标,帮助管理层做出决策,优化资源配置,并驱动组织的整体业绩提升。同时,这份指标汇总文档强调了财务稳健性和客户满意度的重要性,体现了现代企业对多维度绩效管理的重视。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】俄罗斯方块:实现经典的俄罗斯方块游戏,学习方块生成和行消除逻辑。

![【实战演练】俄罗斯方块:实现经典的俄罗斯方块游戏,学习方块生成和行消除逻辑。](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/70a49cc62dcc46a491b9f63542110765~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp) # 1. 俄罗斯方块游戏概述** 俄罗斯方块是一款经典的益智游戏,由阿列克谢·帕基特诺夫于1984年发明。游戏目标是通过控制不断下落的方块,排列成水平线,消除它们并获得分数。俄罗斯方块风靡全球,成为有史以来最受欢迎的视频游戏之一。 # 2.
recommend-type

卷积神经网络实现手势识别程序

卷积神经网络(Convolutional Neural Network, CNN)在手势识别中是一种非常有效的机器学习模型。CNN特别适用于处理图像数据,因为它能够自动提取和学习局部特征,这对于像手势这样的空间模式识别非常重要。以下是使用CNN实现手势识别的基本步骤: 1. **输入数据准备**:首先,你需要收集或获取一组带有标签的手势图像,作为训练和测试数据集。 2. **数据预处理**:对图像进行标准化、裁剪、大小调整等操作,以便于网络输入。 3. **卷积层(Convolutional Layer)**:这是CNN的核心部分,通过一系列可学习的滤波器(卷积核)对输入图像进行卷积,以
recommend-type

绘制企业战略地图:从财务到客户价值的六步法

"BSC资料.pdf" 战略地图是一种战略管理工具,它帮助企业将战略目标可视化,确保所有部门和员工的工作都与公司的整体战略方向保持一致。战略地图的核心内容包括四个相互关联的视角:财务、客户、内部流程和学习与成长。 1. **财务视角**:这是战略地图的最终目标,通常表现为股东价值的提升。例如,股东期望五年后的销售收入达到五亿元,而目前只有一亿元,那么四亿元的差距就是企业的总体目标。 2. **客户视角**:为了实现财务目标,需要明确客户价值主张。企业可以通过提供最低总成本、产品创新、全面解决方案或系统锁定等方式吸引和保留客户,以实现销售额的增长。 3. **内部流程视角**:确定关键流程以支持客户价值主张和财务目标的实现。主要流程可能包括运营管理、客户管理、创新和社会责任等,每个流程都需要有明确的短期、中期和长期目标。 4. **学习与成长视角**:评估和提升企业的人力资本、信息资本和组织资本,确保这些无形资产能够支持内部流程的优化和战略目标的达成。 绘制战略地图的六个步骤: 1. **确定股东价值差距**:识别与股东期望之间的差距。 2. **调整客户价值主张**:分析客户并调整策略以满足他们的需求。 3. **设定价值提升时间表**:规划各阶段的目标以逐步缩小差距。 4. **确定战略主题**:识别关键内部流程并设定目标。 5. **提升战略准备度**:评估并提升无形资产的战略准备度。 6. **制定行动方案**:根据战略地图制定具体行动计划,分配资源和预算。 战略地图的有效性主要取决于两个要素: 1. **KPI的数量及分布比例**:一个有效的战略地图通常包含20个左右的指标,且在四个视角之间有均衡的分布,如财务20%,客户20%,内部流程40%。 2. **KPI的性质比例**:指标应涵盖财务、客户、内部流程和学习与成长等各个方面,以全面反映组织的绩效。 战略地图不仅帮助管理层清晰传达战略意图,也使员工能更好地理解自己的工作如何对公司整体目标产生贡献,从而提高执行力和组织协同性。