Laden...

Zeitberrechnung mit bestimmten Klauseln (Unterschiedliche Behandlung von Tag- und Nachttarif)

Erstellt von KS-Kommando vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.255 Views
Thema geschlossen
K
KS-Kommando Themenstarter:in
26 Beiträge seit 2009
vor 12 Jahren
Hinweis von herbivore vor 12 Jahren

Titel konkretisiert

Zeitberrechnung mit bestimmten Klauseln (Unterschiedliche Behandlung von Tag- und Nachttarif)

Servus @ All,

auch wenn der Thread-Name etwas iritierend ist, erkläre ich mal mein Problem.

gegeben sind zwei Startzeiten:

a = 06.02.2012 um 18:30Uhr
b = 07.02.2012 um 6:05Uhr

Die Zeitspanne zwischen den zwei Zeiten kann ich ja ohne Probleme mit TimeSpan berrechnen.

Ich muss nun Prüfen, ob zeit a zwischen 20Uhr und 6Uhr des folgetages liegt, sowie ob die Zeit b auch dazwischen liegt,

im theoretischen Fall wäre das true + restliche Zeit

aber wie soll ich das anstellen?
Bitte um Hilfe,
LG KS-Kommando

731 Beiträge seit 2006
vor 12 Jahren

Hi, ich verstehe das Problem wohl nicht ganz, denn sonst wäre die Prüfung zu einfach 😃

Sollte für Zeitpunkt a nicht folgender Code reichen?


a.TimeOfDay.Hours >= 20 || a.TimeOfDay.Hours < 6

MfG
wax

K
KS-Kommando Themenstarter:in
26 Beiträge seit 2009
vor 12 Jahren

ums mal ein bisschen genauer zu erklären

nachttarif ist 20uhr bis 6uhr

Eine Person fährt am 06.02.2012 um 18:30Uhr in das Parkhaus und fährt früh 6:05Uhr wieder heraus
Da er im zum Nachttarif im Parkhaus war werden ihm 2€ + die zwei stunden berrechnet (2€) und macht somit 4 €
wenn er aber z.B. 18:30Uhr einfährt und 9Uhr raus fährt macht das den Tagestarif von 6€

16.807 Beiträge seit 2008
vor 12 Jahren

Wax, ich glaube das ist falsch; denn er will wahrscheinlich eine Art zeitnachweis für Mitarbeiter erstellen.

Freischnauze, keine Ahnung ob Syntax im Moment korrekt ist:

 var dayToCompare = DateTime.Now;

var currentDay = dayToCompare;
var todayEightPM = new DateTime( currentDay.Year, currentDay.Month, currentDay.Day, 20, 0, 0 );

var nextDay = currentDay .AddDays( 1 );

var nextDaySixAM = new DateTime( nextDay.Year, nextDay.Month, nextDay.Day, 6, 0, 0 );

if ( dayToCompare > todayEightPM && dayToCompare < nextDaySixAM )
{
    // Tag liegt zwischen Tag1 20 Uhr und Tag2 6 Uhr
}

Edit: nagut, dann eben ein Parkhaus. Das Prinzip ist jedoch das selbe 😉

K
KS-Kommando Themenstarter:in
26 Beiträge seit 2009
vor 12 Jahren

leider hilft mir das noch net wirklich weiter
Da ich damit nur ein genaue Zeit prüfen kann

Ich muss aber schaun , wenn er 18:30Uhr einfährt und 5Uhr ausfährt,
ob er in dem Zeitraum vom Nachttarif drin war

731 Beiträge seit 2006
vor 12 Jahren

Wenn er um 5 Uhr rausfährt war er doch auf jeden Fall zum Nachttarif drin.

MfG
wax

16.807 Beiträge seit 2008
vor 12 Jahren

Du musst noch viel mehr prüfen. Ist ja nicht so, dass er das Auto unbedingt am nächsten Tag raus fährt; kann ja auch mal 3 Tage drin stehen.
Aber mein Beispiel zeigt, wie man sowas vergleichen kann.

Die Aufgabe musst Du nun schon selbst machen - wir werden Dir das nicht programmieren.

731 Beiträge seit 2006
vor 12 Jahren

Ich stimme Abt zu.
Man merkt, dass du eine Vorstellung davon hast wie das System arbeiten soll. Diese Anforderungen nun in Code umzusetzen musst du schon selbst erledigen. Sorry

MfG
wax

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo KS-Kommando,

einfach nur die Aufgabe schildern und das zudem noch ungenau, ohne dazuzusagen, wo man hängt, hat immer die Tendenz, dass die Threads nicht auf den Punkt kommen. Das hilft weder dir als Thread-Starter noch der Community. Nur können wir auch nicht endlos warten, bis du dich bequemst.

Es wurde ja schon gesagt, dass du die Anforderungen kennst und es deine Aufgabe ist, diese in Code umzusetzen. Bitte beachte [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

Folgende Threads könnten dir dabei helfen:

Zeitberechung in C#: Stunden addieren, aber nur zwischen 8:00 und 16:30
Suche Denkansätze für die Berechnung von Zeiten

Kalenderrechner für tatsächliche Arbeitstage

herbivore

Thema geschlossen