Billing Cycles

by stevenkaspar

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.0/moment.min.js"></script>
<div id='result'></div>

JavaScript

const agreement = {
	value: 1,
  unit: 'month',
}
const billing = {
	value: 1,
  unit: 'week',
}
const price = 1200.00

const billingPriceVirtual = function () {
  let billing_cycles = 0
  const sim_start_date = moment().startOf('day')
	const end_agreement = sim_start_date.clone().add(agreement.value, agreement.unit)
  
  while (sim_start_date.isBefore(end_agreement, 'day')) {
    sim_start_date.add(billing.value, billing.unit)
    billing_cycles += 1
  }

  return price / billing_cycles
}


document.getElementById('result').innerHTML = billingPriceVirtual()