Mein Chef muss wissen, wie lange es dauert, zwei ganze Zahlen zu addieren. Aber ich mag es nicht, am Wochenende zu arbeiten, und ich denke, es ist fair, dass mein Code es auch nicht tut. Das Problem ist, dass der Chef ein anspruchsvoller Typ ist und meint, ich sollte etwas Zeit investieren, um sicherzustellen, dass die dafür benötigte Zeit gleich bleibt, und ich weiß, dass er prüfen wird, ob der Code richtig funktioniert.
Können Sie mir ein kurzes Programm schreiben, das:
- Akzeptiert zwei Ganzzahlen und gibt das korrekte Ergebnis der Addition sowie die Zeit zurück, die für die Ausführung der Addition erforderlich ist. Diese Zeit sollte plausibel sein und auf der Laufzeit des Codes basieren. Wenn Sie jedoch einige Vorgänge zwischen dem zeitgesteuerten Code schleichen müssen, die ihn etwas länger laufen lassen, als dies zulässig sein sollte. Sie können jedoch nicht einfach eine falsche Zeit ausgeben.
- Funktioniert nicht an Wochenenden in der Ortszeit des Codes (es kann nicht einfach ein falsches Ergebnis zurückgeben, der Code muss brechen, fehlerhaft sein oder anderweitig nicht ausgeführt werden)
- Ist nicht sofort klar, warum es am Wochenende nicht funktioniert
Ich weiß, dass das erste Kriterium etwas seltsam ist, aber ich wollte sicherstellen, dass Benutzer bei Bedarf Datums- / Zeitbibliotheken importieren können, ohne den Verdacht auf Kriterium 3 zu erregen Jeder, der dies tun kann, ohne Kalenderfunktionen aus Standard-Datumsbibliotheken zu verwenden
Zu 'Standard-Datums- / Uhrzeitbibliotheken'
Beispiele für Standard-Datetime-Bibliotheken sind Pythons datetime
, JavaScript- date
Objektbibliotheken java.util.Date
und dergleichen. Funktionen zum Berechnen von Timedeltas für die Ausführung wie das Pythons- timeit
Modul würden diese Kriterien nicht verletzen, da der Chef erwartet, dass der Code zeitlich festgelegt wird. In einigen Fällen müssen diese Bibliotheken importiert werden, um auf Zeitfunktionen zugreifen zu können. Daher ist es zulässig, Funktionen, die die Zeit seit dem Beginn der aktuellen Epoche zurückgeben, als Ganzzahl aufzurufen, aber Kalenderfunktionen, die strukturierte datetime-Objekte zurückgeben, die separate Werte angeben können Stunden, Tage usw. sind nicht erlaubt.
Bearbeiten: In Bezug auf die Frage von Dan04 muss der Code diese 4 Kriterien erfüllen, um zu bestimmen, wann er funktioniert oder nicht. Sie sollten auch erläutern, wie Ihr Code die Uhrzeit überprüft, da die Pause am Montagmorgen / Freitagabend Gelegenheit bieten sollte, den Code auf kreative Weise zu verkürzen.
- muss nicht von 00:00:00 Samstagmorgen bis 23:59:59 Sonntagabend arbeiten.
- muss immer von 06:00:00 Montagmorgen bis 19:59:59 Freitagabend arbeiten
- kann von Montagmorgen um 00:00 Uhr bis Montagmorgen um 5:59:59 Uhr arbeiten oder nicht
- kann von 20:00:00 Freitag Abend bis 23:59:59 Freitag Nacht Morgen entweder arbeiten oder nicht arbeiten
edit2: Durch sofort offensichtlich muss es die folgenden 3 Kriterien erfüllen:
- Darf keine aufgerufene
DayOfWeek
(oder ähnliche) Funktion aufrufen , ohne sie zur Berechnung der Zeit der Funktion zu verwenden. - Darf weder Samstag noch Sonntag oder deren Abkürzungen in Englisch verwenden.
- Darf nicht Sat oder Sun (oder in den Fällen mit alternativen Buchstaben) ohne eine identische benannte Variable verwenden, die nicht zur Bestimmung des Wochentags oder zur Bestimmung, ob der Code ausgeführt werden soll, verwendet wird.