GratisAItravel · field guide · local-first · no account
rental-period register

Count Commenced Rental Billing Blocks From Pickup and Return Instants — Free

A rental quoted by commenced blocks can change at a one-minute boundary. Enter offset-stamped pickup and return times and the billing-block length from the quote to see elapsed hours, whole blocks and allocated-but-unused hours.

The proof surface

Rental fuel comparisons price a prepaid fuel choice. This register isolates time-block counting from that price decision and uses timestamp instants, so differing offsets do not get mistaken for elapsed rental hours.

Inputquote label | pickup YYYY-MM-DDTHH:MM±HH:MM | return YYYY-MM-DDTHH:MM±HH:MM; length of one billing block in hours
Rare deviceRental fuel comparisons price a prepaid fuel choice. This register isolates time-block counting from that price decision and uses timestamp instants, so differing offsets do not get mistaken for elapsed rental hours.
Output artifactLargest commenced-block count with row-by-row context
Cost$0 local calculation · no card, paid key, subscription or signup · proposed filing price is not for sale
Sample, not your facts: Illustrative inputs: Harbor desk | 2026-10-01T10:00+02:00 | 2026-10-03T10:01+02:00; Station desk | 2026-10-01T10:00+02:00 | 2026-10-03T10:00+02:00. Length of one billing block in hours = 24. Largest commenced-block count: 3 billing blocks. All records are invented.

Before using the rental-period register

Find the actual convention in the terms: rolling hours, calendar days, a weekly package and a desk-specific minimum can all behave differently. This model uses only rolling elapsed-hour blocks rounded upward. It does not add a grace period, extra-day rate, cancellation fee, tax or minimum bill. Offset-stamped times keep a clock change from silently appearing as an extra or missing hour. An offset can still be entered incorrectly, so compare it with the pickup and return itinerary. Use rows for alternative quote windows, not separate legs of one rental that you then expect the app to combine. The resulting block count is a precise question to ask a desk or provider, not a contract interpretation or a prediction of the final invoice.

Why the flat version breaks

Calling every two-date stay two days

Calendar labels do not determine rolling elapsed-hour blocks. Exact counter times decide whether a new block has begun in this model.

Subtracting two local clocks directly

Different offsets can change the elapsed interval even when clock labels look similar. The parser converts both timestamps to instants first.

Turning unused allocation into permission

Twelve arithmetically unused hours do not guarantee a later return, an open desk or unchanged terms. Confirm the actual contract and booking.

How to work the rental-period register

Check the quoted block convention

Enter the billing block in hours only if the agreement uses commenced elapsed-hour blocks. A calendar-day product belongs to another calculation. The setting is positive and may be fractional if your quote explicitly uses a fractional-hour block.

Use complete timestamp instants

Both pickup and return require date, hour, minute and explicit numeric offset. Impossible dates and an end before the start are rejected. A desk’s local display time without its offset is not sufficient for this instrument.

Count blocks without rounding elapsed time first

Elapsed hours equal return instant minus pickup instant divided by 3,600,000 milliseconds. Required blocks equal ceiling of elapsed hours divided by block hours. The note also shows blocks times block hours minus elapsed hours, keeping spare allocation distinct from an entitlement.

Confirm exceptions with the provider

Ask about grace, counter hours, minimum charges, clock changes and late-return terms before comparing prices. Do not move the stated return time unless the proposed time is genuinely feasible and accepted by the rental provider.

What the rental-period register separates

QuestionBeforeInspect this instead
Calling every two-date stay two daysCalendar labels do not determine rolling elapsed-hour blocks. Exact counter times decide whether a new block has begun in this model.Use complete timestamp instants
Subtracting two local clocks directlyDifferent offsets can change the elapsed interval even when clock labels look similar. The parser converts both timestamps to instants first.Count blocks without rounding elapsed time first
Turning unused allocation into permissionTwelve arithmetically unused hours do not guarantee a later return, an open desk or unchanged terms. Confirm the actual contract and booking.Confirm exceptions with the provider

This rental-period register replaces a manual count or calculation, not source verification or the responsible person’s review.

Run it on the samples, right here

FIRST-LOAD

HYPOTHESIS / PROTOTYPE — checkout unavailable. Calculation is local. A draft is saved automatically in this browser profile when storage is available; Reset to sample clears it. Optional Pro history stores only five summaries and has its own deletion control. State links encode your inputs and can remain in browser history, clipboard or recipients’ records; share only non-sensitive rows. Optional external AI formatting leaves this device. The required site analytics beacon reports page activity; shared URLs contain encoded inputs. Do not treat an encoded URL as private. The calculator has no input-collection endpoint.

Elapsed-time arithmetic only, not rental-contract, refund, consumer-rights or legal advice. It models upward rounding of rolling blocks and omits grace periods, minimum charges and price rules. Confirm the quoted billing convention and exact accepted counter times with the provider before booking or disputing a charge.

Data note: The rental-period register processes quote label | pickup YYYY-MM-DDTHH:MM±HH:MM | return YYYY-MM-DDTHH:MM±HH:MM locally. Starter/sample selection and Run compute in this tab; no input is sent by the calculator. A local draft may be saved; explicit state-link sharing or optional external AI formatting can disclose inputs. Use non-sensitive labels.

Go deeper: the companion app files the same reading as a bound register page

The article demo above runs without limits. The companion app keeps a local history, exports the rows as CSV, prints the rental-period register reading, and holds your drafts on this device — one complete free app run; the proposed $4 one-time filing layer is not for sale.

The rental-period register answer stays complete for free. The proposed $4 one-time filing layer adds row CSV, print and five local reading summaries, not hidden answers. Checkout is unavailable; the article demo remains unlimited.

Open the rental-period register companion

Boundary

Elapsed-time arithmetic only, not rental-contract, refund, consumer-rights or legal advice. It models upward rounding of rolling blocks and omits grace periods, minimum charges and price rules. Confirm the quoted billing convention and exact accepted counter times with the provider before booking or disputing a charge.

What this is built on

Before: a two-date trip description obscured a commenced-block boundary. After: elapsed instants and rounded billing blocks remain separate from supplier exceptions.

Three worked readings, with different inputs

Sample A — typical inputs

Harbor desk | 2026-10-01T10:00+02:00 | 2026-10-03T10:01+02:00
Station desk | 2026-10-01T10:00+02:00 | 2026-10-03T10:00+02:00

Setting: Length of one billing block in hours = 24. Expected summary: 3 billing blocks.

Harbor desk spans forty-eight hours and one minute, which crosses into a third commenced twenty-four-hour block. Station desk ends at exactly forty-eight hours and needs two blocks. The largest count is three; the counts are alternative quote windows and are not added together. This invented minute shows why a rounded “two-day trip” description can conceal a billing boundary. The provider may have a grace period or another rule; none is inferred here.

Sample B — changed plan

Harbor desk | 2026-10-01T10:00+02:00 | 2026-10-02T22:00+02:00
Station desk | 2026-10-01T10:00+02:00 | 2026-10-02T10:00+02:00

Setting: Length of one billing block in hours = 24. Expected summary: 2 billing blocks.

A thirty-six-hour interval starts two blocks, while an exact twenty-four-hour interval starts one. The tool exposes twelve unused hours within the two-block arithmetic allocation for Harbor desk, not a refund or a guaranteed extension. Earlier pickup and later return can both change the interval. Check the exact counter times in the quote, especially when arrival delays or desk closing hours constrain what is actually possible.

Sample C — boundary convention

Equal instants | 2026-10-01T10:00+02:00 | 2026-10-01T10:00+02:00
One-minute interval | 2026-10-01T10:00+02:00 | 2026-10-01T10:01+02:00

Setting: Length of one billing block in hours = 24. Expected summary: 1 billing blocks.

Equal timestamps have zero elapsed time and therefore zero blocks in this arithmetic model. A one-minute interval commences one block. The zero is deliberately not a minimum-charge policy: a rental contract can impose a minimum even when an interval is zero or a booking is canceled. Returning before pickup is rejected rather than treated as a negative rental. These boundaries make the ceiling operation visible without asserting what a supplier must charge.

Optional AI formatting, never the calculation

Manual entry completes this rental-period register for free without signup. If available to you, the free AI Studio interface linked in the sources may format fictional or non-sensitive notes; external access may require an account. No API key or AI call is built into this tool. Free-tier content may be used to improve products. Review each cell and transcribe it to the labeled row schema; do not paste the JSON object into the row box.

Format only these fictional or non-sensitive notes for a rental-period register. Return strict JSON shaped as {"rows": [{"label": "string", "cells": ["string", "string"]}], "setting": "string"}. The columns are quote label | pickup YYYY-MM-DDTHH:MM±HH:MM | return YYYY-MM-DDTHH:MM±HH:MM; the setting is Length of one billing block in hours. Keep all supplied strings and quantities exactly; do not calculate, infer missing entries, invent dates or add advice. If any required value is missing, return an empty rows array and ask me for it separately. I will verify every cell against my source and manually transcribe rows using vertical bars before running the local calculator.

An AI response is not executed, fetched or trusted as a result. Missing values remain questions; the strict local parser checks the rows you actually enter.