lease-term-calculator
v1.1.0
Published
Calculate lease term duration in years and days, with support for partial year calculations
Maintainers
Readme
lease-term-calculator
Calculate lease term duration in years and days.
Installation
npm install lease-term-calculatorUsage
import calculator from 'lease-term-calculator';
// or
import { DateCalculator } from 'lease-term-calculator';
const calc = new DateCalculator();parseUIDate
Parses and validates date components.
const date = calculator.parseUIDate(2024, 6, 15);
// Returns: Date object, '' (empty input), or 'bad date'calculateTermOfLease
Calculates the lease term between dates.
const effective = new Date(2024, 0, 1);
const start = new Date(2024, 0, 1);
const end = new Date(2026, 5, 30);
const result = calculator.calculateTermOfLease(effective, start, end);
// Returns: { years: 2, days: 181, daysInPartialYear: 365 }Parameters:
effectiveDate- The effective date (lease won't start before this)startDate- The lease start dateendDate- The lease end date
Returns:
years- Number of complete yearsdays- Number of additional days beyond complete yearsdaysInPartialYear- Total days in the partial year (for calculating fractions)
Validations:
The calculator performs comprehensive validation and throws errors for:
- Invalid date objects: All parameters must be valid Date objects
- Invalid dates: NaN dates or dates with invalid components
- Start after end: Start date cannot be after end date
- Same start and end: Start and end dates cannot be the same
- Year range: Years must be between 1900 and 2200
Error handling:
try {
const result = calculator.calculateTermOfLease(
new Date(2024, 0, 1),
new Date(2026, 5, 30), // Start after end
new Date(2024, 0, 1)
);
} catch (error) {
console.error(error.message);
// Output: "Start date cannot be after end date"
}CommonJS Usage
The package supports both ES6 imports and CommonJS require:
// ES6
import { calculateTermOfLease } from 'lease-term-calculator';
// CommonJS
const { calculateTermOfLease } = require('lease-term-calculator');
// or
const calculator = require('lease-term-calculator');
calculator.calculateTermOfLease(effective, start, end);License
MIT
