Es ist üblich, Countdowns 100 Tage vor einem Ereignis zu starten, wahrscheinlich aufgrund unseres Base-10-Systems. Beispiele hierfür finden Sie überall:
- Noch 100 Tage bis zu deinem Geburtstag
- 100 Tage bis zur Hochzeit
- 100 Tage bis zur Wahl
- 100 Tage bis zu unserem Abschluss
- 100 Tage bis zu ihrem Fälligkeitsdatum
- 100 Tage bis zur Fußballsaison
- 100 Tage bis zum Fanatic Badge
Du bekommst das Bild. Es scheint, dass der 100. Tag vor einer Veranstaltung nur der zweite Platz nach der eigentlichen Veranstaltung ist. Für diese Herausforderung muss ich also wissen, wann das Datum in 100 Tagen sein wird, damit ich bestimmen kann, was ich auch mit dem Countdown beginnen soll.
Eingang
Keine Eingabe
Ausgabe
Das Datum 100 Tage nach dem aktuellen Datum basierend auf dem Gregorianischen Standardkalender (Stellen Sie sicher, dass Schaltjahre berücksichtigt werden). Der Ausgang ist flexibel, solange das Datumsformat ist die menschliche Lese-fähig (zB 2016-10-8
, 10-8-16
, [ 2016, 10, 8 ]
, 10/8/16 12:00:00 AM
).
Gewinnen
Code Golf: kürzester Code in Bytes
Beispiele
100 Tage von heute (5. April 2017) ist Freitag, 14. Juli 2017.
Current Future
------- ------
01/01/2001 +100 04/11/2001
01/01/2004 +100 04/10/2004
01/01/1900 +100 04/11/1900
01/01/2000 +100 04/10/2000
07/04/2017 +100 10/12/2017
10/31/2017 +100 02/08/2018
12/25/2017 +100 04/04/2018
08/29/1941 +100 12/07/1941
06/03/2001 +100 09/11/2001
Antworten:
Excel, 10
Demonstration
quelle
=TODAY()+100
=TEXT(NOW()+100,"MM/dd/yyyy")
Bash,
1716151413 BytesEs hat sich herausgestellt, dass der
date
Befehl ziemlich flexible Eingaben für relative Timings benötigt. Sie können auch Dinge tun1 year
,1 week ago
,yesterday
etc. Es ist ziemlich cool.-1 Byte durch die Erkenntnis, dass sich Bash nicht um Grammatik kümmert.
-1 Byte, da der Abstand zwischen
100
und nichtday
erforderlich ist.-1 Byte, weil ich keine Anführungszeichen mehr benötige, weil ich kein Leerzeichen in der Zeichenfolge habe.
-1 Byte durch Entfernen des Leerzeichens danach
-d
(nur dank ASCII!)quelle
-d
PowerShell, 10 Byte
Vielen Dank an ConnorLSW für den + 1e2-Trick.
Es scheint, dass Doppelte (
1e2
ein Doppelte) auch als Tage hinzugefügt werden.Vorherige Version, 12 Bytes:
Anscheinend können Sie Daten in PowerShell Zeichenfolgen hinzufügen. Die Saite
"100"
wird in eine 100-Tage-TimeSpan
.quelle
(date)+100
es nicht(date)+1e2
funktioniert ... Ich denke, es1e2
ist einedouble
While-100
Nummer, bis sie kompiliert ist, dh du kannst nicht anrufen,100.GetType()
aber du kannst1e2.GetType()
- das ist -2 und bringt uns zu ein Unentschieden mit Excel!100
, werden 100 Ticks hinzugefügt, wobei der String"100"
als Tage genommen wird. Beide sind gültige PS, aber nur einer macht das, was wir brauchen.1e6
ist immer noch eine Nummer und wird als Tage hinzugefügt?Mediawiki, 19 Byte
Sie können es mit der Sandbox von Wikipedia versuchen
quelle
PHP, 28 Bytes
Vom Menschen lesbare Version, 35 Bytes:
Fast lesbar, 34 Bytes:
-4 Bytes auch wenn der Zeitdruck akzeptiert wird: Ersetzen Sie
Y_m_d
mitr
oderc
.Es ist Nationalfeiertag in Frankreich in 100 Tagen.
quelle
E_NOTICE
und Sie werden wissen:Y_m_d
ist eine undefinierte Konstante und PHP nimmt einen String an. Dies funktioniert mit jedem gültigen Wort (einschließlich aller Funktionsnamen) neben Schlüsselwort , vordefinierte Konstanten und Groß- und Kleinschreibungtrue
,false
undnull
.Ruby , 16 Bytes
Probieren Sie es online!
quelle
864e4
und8640000
und weiß nicht genau warum. Ich beschuldige TIO. BEARBEITEN: Wenn Sie verwendenp
, führen die beiden Werte zu einem unterschiedlichen Ergebnis. Aber wenn Sie verwendenputs
, sind sie gleich.p Time.now+864e4
liegtp Time.now+8640000
mit TIO rund 4 Tage zurück . Ich habe es mehrmals versucht. Wenn Sie jedoch verwendenputs
, ist diese Unterscheidung nicht vorhanden. Ich weiß nicht wirklich, ob mein Gebietsschema von Bedeutung ist. Der Osten der USA sollte ziemlich normal sein. Ich schätze, ich werde versuchen, es auf meinem eigenen PC auszuführen, wenn ich zu Hause bin.Javascript,
292625 Bytes3 Bytes gespart dank nur @ ASCII!
1 Byte dank @JohanKarlsson gespeichert
quelle
864e7
anstelle von864*10e6
+new Date
anstelle vonDate.now()
console.log
SQL (PostgreSQL), 19 Bytes
quelle
Vim, 27 Bytes
versuche es online!
Bearbeiten: Nicht benötigtes Leerzeichen entfernt.
quelle
date
, ist die auf dieser Seitedate -d100day
nicht sicher, ob es hilft:r!date +\%F -d100day
damit auch funktioniert (zumindest auf meinem pc (c)), ist aber das selbe wieHyperNeutrino
schon in bash verwendet.MATL , 9 Bytes
Ausgabeformat ist
15-Jul-2017
(was ich am besten lesbar finde). Wechseln Sie1XO
zu2XO
, um das in den Beispielen verwendete Format zu erhalten.07/15/17
.Probieren Sie es online!
Erläuterung
quelle
SQL (Microsoft),
35-31Bytequelle
d
anstelleDAY
der Leerzeichen verwenden und diese entfernenDATEADD
.d
. Ich benutzedd
oderday
in der Praxis. Ich habe es einfach versucht und es hat funktioniert.Java 8,
77, 61 BytesProbieren Sie es online!
quelle
()->java.time.LocalDate.now().plusDays(100)
.C #
10397 BytesDanke an raznagul für das Speichern von 6 Bytes!
Vollständiges Programm, das das aktuelle Datum liest, 100 Tage hinzufügt und das Ergebnis im
M/d/YYYY
Format anzeigt .Sie können das Datumsformat ändern, indem Sie einige weitere Bytes hinzufügen:
Um Kesselzeichencode zu eliminieren - C # ist nicht gerade als sehr kompakt bekannt - kann eine anonyme Funktion verwendet werden:
C # Lambda,
4943 BytesVolles Programm:
quelle
Console.Write
..ToString("d")
anstelle von.ToShortDateString()
.Nudel , 8 Bytes
Versuch es:)
Wie es funktioniert
quelle
Mathematica,
2621 Bytes-5 Bytes dank @KiranLinsuain!
Wenn die Angabe der Zeit erlaubt ist, können wir 2 Bytes einsparen:
quelle
C
874644 Bytes2 Bytes gespart dank Albert Renshaw
Ich erkannte, dass die Ausgabe flexibel genug ist, um Wochentag und Uhrzeit zu berücksichtigen, sodass weder die Verwendung
localtime
noch dietm
Struktur erforderlich sind .Alte Antwort
Basierend auf der Antwort von Khaled.K
tm
, addiert sich die Anzahl der Sekunden, die 100 Tagen entsprechen, direkt zumtime_t
Wert , anstatt mit der Struktur herumzuspielen . Es wird auch nur das Datum ohne Uhrzeit und Wochentag gedruckt.Wie es bei einem Golf-Programm passieren sollte, werden beim Kompilieren einige hässliche Warnungen generiert.
Probieren Sie es online!
Ungolfed:
quelle
8640000
durch864e4
JavaScript, 42 Bytes
quelle
IBM / Lotus Notes-Formel, 29 Byte
Leider
@Adjust
erfordert das Nachziehen0's
das Fehlenhh:mm:ss
.Wenn wir auch die Uhrzeit anzeigen dürfen, ändern wir sie
@Today
,@Now
würde durch auf 2 Byte für 27 Byte gespart.quelle
JavaScript (ES6), 44 Byte
25 Bytes, wenn die Rückgabe eines Datums mit der Uhrzeit akzeptabel ist:
quelle
30 Bytes
Mysql!
SQLite
quelle
F # (53 Bytes)
quelle
Schnelle 3, 39 Bytes
quelle
import foundation;
. Swift läuft nur unter iOS und wird dort automatisch importiert.C
120113 BytesLive-Demo
quelle
#include ...
bei der Übermittlung von Funktionen nicht auf die Boilerplate achten. (Java antwortetimport
in diesem Fall zum Beispiel nicht )java.lang.*
nichtstdio.h
wiestdlib.h
in C zählen . Aber auch in Java müssen Sie entweder benutzerdefinierte Importe in Betracht ziehen oder den Pfad in den Klassennamen wiejava.util.Date
: und das zählt in deiner Punktzahl.printf()
dasputs()
nicht auch funktionieren?PowerShell, 23
Dies ist mein erster Versuch. Bitte geben Sie mir konstruktives Feedback. Vielen Dank!
quelle
R (REPL), 14 Bytes
Probieren Sie es auf Ideone .
quelle
Python, 63 Bytes
Sehr einfache Lösung wirklich. Da das
datetime.now()
Ergebnis dasselbe isttype
wie das Ergebnis vontimedelta
, addiert es die beiden glücklich zusammen.quelle
lambda:
und es wäre immer noch ein volles Programm.print
müsste aber hinzugefügt werden und das macht es die gleiche Anzahl von Bytes.print
, um 1 Byte zu speicherndays=
ist optional, das würde 5 + 1 Bytes sparen (python2print
's Klammern)from datetime import*;print datetime.now()+timedelta(100)
JavaScript, 38 Bytes
Ein bisschen kürzer als eine reine ASCII-Antwort .
quelle
Golang, 58 Bytes
Volles Programm
versuche es online!
quelle
Oracle, 34 Bytes
quelle
Python 2 + Pandas 0.19.1,
5651 Bytesquelle