Zum Inhalt springen
  • 0

C# wie am besten Datum für Rechnungen verwenden?


Goldkat

Frage

Heyho,

 

ich bastle mir gerade eine Finanz-App in Unity zusammen und überlege wie ich am besten das durchschnittlich verbleibene Tagesgeld für den Monat errechne.

Meine Überlegung ist "verbleibendes Geld / verbleibende Tage", also ganz simpel. Das Problem ist nur, dass die Monate ja eine unterschiedliche Anzahl an Tagen haben.

Deshalb dachte ich, ich nutze DateTime & .ToShortDateString(); und lasse das vierte & fünfte Zeichen auslesen, um dann über einen case die Anzahl der Tage für die Rechnung, passend zum aktuellen Monat, festzulegen.

Jetzt meine Frage, geht das auch einfacher?

Ich bin absoluter Anfänger und probiere mich gerade als Hobbyentwickler, also habt bitte Nachsicht falls das alles keinen Sinn ergibt 😅

Ist auch meine erste Frage, also wenn irgendwas nicht Forenkonform ist gerne darauf hinweisen.

 

Freundliche Grüße

Goldkat

Link zu diesem Kommentar
Auf anderen Seiten teilen

4 Antworten auf diese Frage

Empfohlene Beiträge

  • 1

Hi Goldkat,

du kannst es dir noch einfacher machen und die Methode DateTime.DaysInMonth(Dein Jahr, Dein Monat) nutzen. Entsprechende Beispiele findest du in der Microsoft Doku: https://docs.microsoft.com/de-de/dotnet/api/system.datetime.daysinmonth

Damit hast du dann auch kein Problem mit Schaltjahren. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 15 Stunden schrieb hytrex:

Hi Goldkat,

du kannst es dir noch einfacher machen und die Methode DateTime.DaysInMonth(Dein Jahr, Dein Monat) nutzen. Entsprechende Beispiele findest du in der Microsoft Doku: https://docs.microsoft.com/de-de/dotnet/api/system.datetime.daysinmonth

Damit hast du dann auch kein Problem mit Schaltjahren. 

Danke das war sehr hilfreich. Ich habe mein Vorhaben jetzt folgendermaßen umgesetzt:

       

            //Verbleibene Tage im aktuellen Monat auslesen "int RemainingDays"
            DateTime date = DateTime.Now;
            int CurrentYear = date.Year;
            int CurrentMonth = date.Month;
            int CurrentDay = date.Day;
            int DaysInCurrentMonth = DateTime.DaysInMonth(CurrentYear, CurrentMonth);
            int RemainingDays = DaysInCurrentMonth - CurrentDay;

            Console.WriteLine(RemainingDays);

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Ich würde das in eine Methode packen:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(RemainingDaysInMonth(DateTime.Now));
    }

    static int RemainingDaysInMonth(DateTime dateTime)
        => DateTime.DaysInMonth(dateTime.Year, dateTime.Month) - dateTime.Day;
}

Vielleicht sogar noch eleganter in eine sog. Extension Method:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(DateTime.Now.RemainingDaysInMonth());
    }
}

static class DateTimeExtensions
{
    public static int RemainingDaysInMonth(this DateTime dateTime)
        => DateTime.DaysInMonth(dateTime.Year, dateTime.Month) - dateTime.Day;
}

Die zweite Variante ist aber schon etwas weiterführend und verlagert die die Berechnung aus der Program-Klasse hinaus.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Grüße dich,

das kannst du, wenn du willst, auch noch vereinfachen:

/Verbleibene Tage im aktuellen Monat auslesen "int RemainingDays"
            int RemainingDays = DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month) - DateTime.Now.Day;

Oder das ganze in eine eigene Methode verlagern und das aktuelle DateTime objekt reingeben 

Ansonsten hätte ich noch die Anmerkung das du deinen Variablen ein einheitliches 'Schreibmuster' gibst.
Beispielsweise hast du in dem Code date kleingeschrieben, wo hingegen CurrentYear großgeschrieben wird.

Empfehlenswert wäre dort das ganze einheitlich zu machen.
In dem Context ist date schon richtig. CurrentYear würde als currentYear heißen.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...