Arkadaslar selamlar,

Kaba taslak ilk hesaplamalari yaparken kullandigim bir html kodlama var. Faydasi olacagini dusunuyorum ihtiyaci olan arkadaslara. Paylasmak istedim.

Kod su ise yariyor. Hangi aylarda calisacaksiniz o aylari seciyorsunuz, o aylarda pazar haric kac gun var onlarin toplam sayisini veriyor. Gunde kac saat calisacaksiniz onu giriyorsunzu ve saatlik uceri giriyorsunuz. Sliderdan da vergi icin kullanabileceginiz degerler mevcut, %25,%0,50, %75 gibi.

Sonrasinda bunlarin carpimini veriyor deger.

Ornek resimde mart ve haziran ayinda calisirsaniz, pazarlar haric calisacaginiz 51 gun var.Gunde 10 saat calisirsaniz ve saatlik 60$ ucretlendirirseniz, %25 vergi sonrasi kalacak miktar gozukuyor. (direk %75 ile carpiyor)

Az cok faydasi olacaktir kullanacaklara.

kodu burda da deneyebilirsiniz: https://jsfiddle.net/



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Fiyat Hesaplama</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            background-color: #f4f4f9;
            padding: 20px;
        }
        .container {
            max-width: 600px;
            margin: 0 auto;
            background-color: white;
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
        }
        h1 {
            text-align: center;
            color: #333;
        }
        label {
            display: block;
            margin: 10px 0 5px;
            color: #555;
        }
        .checkbox-group {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
        }
        .checkbox-group label {
            flex-basis: 48%;
            padding: 5px;
            margin-bottom: 10px;
            background-color: #e9ecef;
            border-radius: 4px;
            cursor: pointer;
        }
        input[type="number"], input[type="range"] {
            width: 100%;
            padding: 10px;
            margin-bottom: 20px;
            border: 1px solid #ccc;
            border-radius: 4px;
        }
        .slider-label, .result {
            font-weight: bold;
            color: #333;
        }
        .result {
            margin-top: 20px;
            text-align: center;
            font-size: 1.5em;
        }
        button {
            width: 100%;
            padding: 10px;
            background-color: #28a745;
            border: none;
            border-radius: 4px;
            color: white;
            font-size: 1em;
            cursor: pointer;
        }
        button:hover {
            background-color: #218838;
        }
        span {
            color: #555;
        }
    </style>
</head>
<body>

<div class="container">
    <h1>Fiyat Hesaplama</h1>

    <label>Ay Seçimi:</label><br>
    <div id="month-checkboxes" class="checkbox-group">
        <label><input type="checkbox" value="0" onchange="updateDays()"> Ocak</label>
        <label><input type="checkbox" value="1" onchange="updateDays()"> Şubat</label>
        <label><input type="checkbox" value="2" onchange="updateDays()"> Mart</label>
        <label><input type="checkbox" value="3" onchange="updateDays()"> Nisan</label>
        <label><input type="checkbox" value="4" onchange="updateDays()"> Mayıs</label>
        <label><input type="checkbox" value="5" onchange="updateDays()"> Haziran</label>
        <label><input type="checkbox" value="6" onchange="updateDays()"> Temmuz</label>
        <label><input type="checkbox" value="7" onchange="updateDays()"> Ağustos</label>
        <label><input type="checkbox" value="8" onchange="updateDays()"> Eylül</label>
        <label><input type="checkbox" value="9" onchange="updateDays()"> Ekim</label>
        <label><input type="checkbox" value="10" onchange="updateDays()"> Kasım</label>
        <label><input type="checkbox" value="11" onchange="updateDays()"> Aralık</label>
    </div>

    <div>
        <span>Seçilen Ayların Pazar Hariç Toplam Gün Sayısı: </span>
        <span id="days-count">0</span>
    </div>

    <label for="input2">Günlük Çalışma Saati:</label>
    <input type="number" id="input2" placeholder="Çalışma saatini girin" step="any">

    <label for="input3">Saatlik Ücret ($):</label>
    <input type="number" id="input3" placeholder="Saatlik ücreti girin" step="any">

    <div class="slider-label">Çarpan Seçin:</div>
    <input type="range" id="slider" min="0.25" max="1" step="0.25" value="1" list="tickmarks">
    <datalist id="tickmarks">
        <option value="0.25" label="0.25"></option>
        <option value="0.50" label="0.50"></option>
        <option value="0.75" label="0.75"></option>
        <option value="1" label="1"></option>
    </datalist>
    <span id="slider-value">1</span>

    <div class="result" id="result">Sonuç: </div>

    <button onclick="calculate()">Hesapla</button>
</div>

<script>
    const slider = document.getElementById("slider");
    const sliderValue = document.getElementById("slider-value");
    slider.oninput = function() {
        sliderValue.textContent = this.value;
    }

    const daysCountElement = document.getElementById("days-count");

    function updateDays() {
        const checkboxes = document.querySelectorAll("#month-checkboxes input[type='checkbox']:checked");
        let totalDays = 0;
        checkboxes.forEach(checkbox => {
            const month = parseInt(checkbox.value);
            totalDays += getWeekdaysWithoutSundays(2025, month);
        });
        daysCountElement.textContent = totalDays;
    }

    function getWeekdaysWithoutSundays(year, month) {
        const date = new Date(year, month, 1);
        let totalDays = 0;
        while (date.getMonth() === month) {
            const dayOfWeek = date.getDay(); // 0 = Sunday, 6 = Saturday
            if (dayOfWeek !== 0) { // Skip Sundays
                totalDays++;
            }
            date.setDate(date.getDate() + 1);
        }
        return totalDays;
    }

    function calculate() {
        const daysCount = parseFloat(daysCountElement.textContent);
        const workingHours = parseFloat(document.getElementById("input2").value);
        const hourlyRate = parseFloat(document.getElementById("input3").value);
        const multiplier = parseFloat(slider.value);

        if (!isNaN(daysCount) && !isNaN(workingHours) && !isNaN(hourlyRate)) {
            const result = daysCount * workingHours * hourlyRate * multiplier;
            document.getElementById("result").textContent = "Sonuç: " + result.toFixed(2) + " $";
        } else {
            document.getElementById("result").textContent = "Lütfen geçerli değerler girin.";
        }
    }

    // Sayfa ilk yüklendiğinde gün sayısını hesaplamak için
    window.onload = updateDays;
</script>

</body>
</html>