C# :: Aufgabe #347 :: Lösung #3

4 Lösungen Lösungen öffentlich
#347

Berechnung Kfz-Steuer (Deutschland 2021)

Anfänger - C# von JKooP - 15.12.2020 um 19:35 Uhr
Schreibe eine Methode/Funktion, mit der es möglich ist, die Kfz- Steuer sowohl für Benzin-, als auch Dieselfahrzeuge
ab dem 01.01.2021 für Deutschland zu berechnen.

Übergeben werden sollen die Parameter: Otto- o. Dieselfahrzeug, Hubraum in ccm, CO2 in g.

Als Ergebnis soll die Gesamtsteuer in Euro fürs Jahr ausgegeben werden.

Eine ausführliche Berechnungshilfe findet man hier!

Viel Spaß
#3
vote_ok
von JKooP (18090 Punkte) - 12.02.2021 um 06:52 Uhr
NET 5.x; C# 9.x
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;

namespace Kfz_Steuer
{
    enum Antrieb { Otto = 200, Diesel = 950 }

    class Program
    {
        static void Main(string[] args)
        {
            var steuer = new Steuer(Antrieb.Diesel, 1969, 158);
            Console.WriteLine(steuer);
        }
    }

    record Steuer(Antrieb Antrieb, int Hubraum_ccm, int Co2_g)
    {
        private readonly List<(int von, int bis, double faktor)> _lstPreiseCo2 = new()
        {
            (96, 115, 2.0),
            (116, 135, 2.2),
            (136, 155, 2.5),
            (156, 175, 2.9),
            (176, 195, 3.4),
            (196, 9999, 4.0)
        };

        public double Steuerbetrag
        {
            get
            {
                var kostenCo2 = 0.0;

                foreach (var (von, bis, faktor) in _lstPreiseCo2)
                {
                    if (Co2_g < von)
                        break;
                    else if (Co2_g >= von && Co2_g <= bis)
                        kostenCo2 += (Co2_g + 1 - von) * faktor;
                    else
                        kostenCo2 += (bis - von + 1) * faktor;
                }
                return (int)Antrieb / 100.0 * Math.Ceiling(Hubraum_ccm / 100.0) + kostenCo2;
            }
        }

        public override string ToString() => $"Steuer: {Steuerbetrag:F2} Euro";
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben