working state
This commit is contained in:
32
fuel-calc.js
32
fuel-calc.js
@@ -5,6 +5,7 @@ function updateLanguage() {
|
||||
const language = langData[currentLang];
|
||||
|
||||
document.getElementById("header").textContent = language.header;
|
||||
document.getElementById("description").textContent = language.description;
|
||||
document.getElementById("dTaxLabel").textContent = language.dTaxLabel;
|
||||
document.getElementById("dPriceLabel").textContent = language.dPriceLabel;
|
||||
document.getElementById("dConsLabel").textContent = language.dConsLabel;
|
||||
@@ -43,34 +44,35 @@ function calculate() {
|
||||
const pCons = parseFloat(document.getElementById("pCons").value);
|
||||
const annualKm = parseFloat(document.getElementById("annualKm").value);
|
||||
|
||||
const dieselCostPerKm = (dPrice * dCons) / 100;
|
||||
const petrolCostPerKm = (pPrice * pCons) / 100;
|
||||
|
||||
const dieselAnnualCost = (dTax + (dieselCostPerKm * annualKm));
|
||||
const petrolAnnualCost = (pTax + (petrolCostPerKm * annualKm));
|
||||
// 1. Calculate Break-Even Petrol Consumption
|
||||
// Formula: P_Cons = (100 * (dTax - pTax) / (annualKm * pPrice)) + (dCons * dPrice / pPrice)
|
||||
const taxDiff = dTax - pTax;
|
||||
const breakEven = (100 * taxDiff / (annualKm * pPrice)) + (dCons * dPrice / pPrice);
|
||||
|
||||
const diff = Math.abs(dieselAnnualCost - petrolAnnualCost);
|
||||
|
||||
let breakEvenCons = 0;
|
||||
if (dCons < pCons || dTax > pTax) {
|
||||
breakEvenCons = (pCons - ((dTax - pTax) / (annualKm * (pPrice - dPrice))));
|
||||
if (breakEvenCons <= 0) breakEvenCons = 0;
|
||||
}
|
||||
// 2. Generate Table
|
||||
// 2. Calculate Minimum Diesel Price where user's pCons equals break-even consumption
|
||||
// We want to solve for dPrice such that: pCons = (100 * taxDiff / (annualKm * pPrice)) + (dCons * dPrice / pPrice)
|
||||
// Rearranging for dPrice:
|
||||
// pCons - (100 * taxDiff / (annualKm * pPrice)) = (dCons * dPrice / pPrice)
|
||||
// dPrice = (pCons - (100 * taxDiff / (annualKm * pPrice))) * pPrice / dCons
|
||||
|
||||
let minDieselPrice = 0;
|
||||
if (dPrice < pPrice || dTax > pTax) {
|
||||
minDieselPrice = (pPrice - ((dTax - pTax) / (annualKm * (pCons - dCons))));
|
||||
if (minDieselPrice <= 0) minDieselPrice = 0;
|
||||
if (dCons > 0 && annualKm > 0 && pPrice > 0) {
|
||||
const firstTerm = 100 * taxDiff / (annualKm * pPrice);
|
||||
const secondTerm = pCons - firstTerm;
|
||||
minDieselPrice = secondTerm * pPrice / dCons;
|
||||
}
|
||||
|
||||
document.getElementById("displayKm").textContent = annualKm.toLocaleString();
|
||||
document.getElementById("breakEvenCons").textContent = breakEvenCons.toFixed(2);
|
||||
document.getElementById("breakEvenCons").textContent = breakEven.toFixed(2);
|
||||
document.getElementById("minDieselPrice").textContent = minDieselPrice.toFixed(2);
|
||||
|
||||
const tbody = document.getElementById("comparisonTable").getElementsByTagName('tbody')[0];
|
||||
tbody.innerHTML = '';
|
||||
|
||||
for (let i = 10000; i <= 50000; i += 5000) {
|
||||
for (let i = 5000; i <= 50000; i += 5000) {
|
||||
const row = tbody.insertRow();
|
||||
const cell1 = row.insertCell(0);
|
||||
const cell2 = row.insertCell(1);
|
||||
|
||||
@@ -23,6 +23,9 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="description">
|
||||
<span id="description"></span>
|
||||
</div>
|
||||
<div class="input-grid">
|
||||
<!-- Diesel Inputs -->
|
||||
<div class="input-group">
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
const langData = {
|
||||
en: {
|
||||
header: "Car Cost Comparison",
|
||||
description: "This calculator was created to provide a simple way to estimate and compare vehicle running costs. It uses a straightforward formula to combine well-known values and present the results at a high level, helping illustrate how current fuel prices, taxes, and consumption affect the overall cost of owning a diesel car.",
|
||||
dTaxLabel: "Diesel Annual Tax (€)",
|
||||
dPriceLabel: "Diesel Price per Liter (€)",
|
||||
dConsLabel: "Diesel Consumption (L/100km)",
|
||||
@@ -20,16 +21,17 @@ const langData = {
|
||||
|
||||
ru: {
|
||||
header: "Сравнение затрат на автомобили",
|
||||
dTaxLabel: "Годовая плата за дизель (€)",
|
||||
description: "Этот калькулятор создан для простого расчёта и сравнения эксплуатационных расходов автомобиля. Он использует несложную формулу, объединяющую известные показатели, чтобы представить результаты в общих чертах и показать, как текущие цены на топливо, налоги и расход влияют на общую стоимость владения дизельным автомобилем.",
|
||||
dTaxLabel: "Годовой налог на дизель (€)",
|
||||
dPriceLabel: "Цена дизеля за литр (€)",
|
||||
dConsLabel: "Расход дизеля (л/100 км)",
|
||||
pTaxLabel: "Годовая плата за бензин (€)",
|
||||
pTaxLabel: "Годовой налог на бензин (€)",
|
||||
pPriceLabel: "Цена бензина за литр (€)",
|
||||
pConsLabel: "Расход бензина (л/100 км)",
|
||||
annualKmLabel: "Ваш ежегодный пробег (км)",
|
||||
resultText1: "Чтобы компенсировать разницу в налогах при ",
|
||||
resultText2: " км в год, расход бензинового автомобиля должен быть не менее ",
|
||||
resultText3: " л/100 км, либо цена дизеля должна быть не менее ",
|
||||
resultText3: " л/100 км, либо цена дизеля должна быть не более ",
|
||||
resultText4: " €/л.",
|
||||
tableDistance: "Ежегодная дистанция",
|
||||
tableDieselTotal: "Общие затраты на дизель",
|
||||
|
||||
Reference in New Issue
Block a user