100日間のカウントダウン


25

イベントの100日前にカウントダウンを開始するのが一般的ですが、これはおそらくベース10システムが原因です。これの例はどこでも見つけることができます:

  • 誕生日までの100日間
  • 結婚式までの100日
  • 選挙までの100日
  • 卒業まで100日
  • 期日まで100日
  • サッカーシーズンまでの100日間
  • Fanaticバッジを取得するまでの100日間

写真が撮れます。イベントが開催される100日前は、実際のイベントに次いで2位であるようです。ですから、この挑戦​​のために、私は100日後の日付が何であるかを知る必要があります。そうすれば、カウントダウンを始めるべきものを決めることができます。

入力

入力なし

出力

標準のグレゴリオ暦に基づく現在の日付から100日後の日付(うるう年を考慮してください)。出力は限り日付形式があると柔軟性があり、人間の読み取り可能な(例えば2016-10-810-8-16[ 2016, 10, 8 ]10/8/16 12:00:00 AM)。

勝ち

コードゴルフ:バイト単位の最短コード


今日から100日(2017年4月5日)は、2017年7月14日金曜日です。

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

2
現在の時刻を出力に追加できますか?
タイタス

1
@タイタスいいえ、ちょうど未来の日付
NonlinearFruit

1
ほとんどの回答には現在日時が含まれていますが、これは許可されるべきだと思います。
GB

1
@GB将来の日付を出力するとき、人間が読める形式であれば、形式は柔軟です(タイムスタンプを含めることができます)。ただし、現在の時刻/日付は受け入れられません。
NonlinearFruit

5
bas 10システムのため」我々はバイナリでカウント場合はありません、我々はおそらく100からカウントダウンしたい-それはむしろ百よりも、わずか4日間かかるだろう除いて...
トビースパイツ

回答:


42

Excel、10

=NOW()+100

デモンストレーション

enter image description here


1
Googleスプレッドシートでも機能します。
Okx

11
Excelは、日付の解析を伴うコードゴルフに常に適しています。
エンジニアトースト

2
NOW関数が2文字だけで記述されているExcel用の言語パックはありますか?その場合、1バイト節約できます。
iFreilicht

13
そう、オランダ語には「nu()」があります
トミネーター

2
ただし、日付部分ごとに、=TODAY()+100またはを使用する必要があります=TEXT(NOW()+100,"MM/dd/yyyy")
-KyleMit

20

Bash、17 16 15 14 13バイト

date -d100day

このdateコマンドは、相対的なタイミングに対してかなり柔軟な入力を必要とします。あなたはまた、物事が好き行うことができます1 year1 week agoyesterday、などそれはかなりクールです。

bashは文法を気にしないことを認識して、-1バイト。との
間のスペースが不要なため、-1バイト。 -1バイト。文字列にスペースがないため、引用符はもう必要ないからです。 後のスペースを削除して-1バイト(ASCIIのみに感謝!) 100day

-d


新しいお気に入りコマンド+1
NonlinearFruit

@NonlinearFruitええ、それはおそらく私のお気に入りのコマンドの1つです。ありがとう!
ハイパーニュートリノ

後にスペースは必要ありません-d
ASCIIのみ

@ASCIIのみああ、大丈夫。ありがとう!
-HyperNeutrino

10

PowerShell、10バイト

(date)+1e2

+ 1e2トリックのConnorLSWに感謝します。

1e2ダブル(ダブル)も日として追加されるようです。

前のバージョン、12バイト:

(date)+"100"

PowerShellで日付に文字列を追加できるようです。文字列"100"は100日間に変換されTimeSpanます。


2
[OK]を、なぜ私に聞かないではなく、たとえない(date)+100仕事はしていません、(date)+1e2ん...私は推測する1e2実際にあるdoubleのに対し、100それがコンパイルされるまでの数である、つまりはあなたが呼び出すことはできません100.GetType()が、あなたのことが可能1e2.GetType()だ-2に私たちをもたらしています- Excelで抽選!
colsw

@ConnorLSWそれが助けになるか、混乱を増すと100、文字列"100"が日として解釈される場合に100ティックを追加すると見なされます。どちらも有効なPSですが、必要なことを行うのは1つだけです。
マット

@Matt 1e6はまだ数字であり、日として追加されますか?
-colsw

それは興味深いです。おそらく、その数がしきい値を超えるボンネットの下でさらに進んでいるのかもしれません。...わかりません
マット

私はそれが何らかので古いDATE型に関連していると思います。これは8バイトの浮動小数点数で、日は整数の増分として表されます。これがExcelが使用しているものだと思います。
ダンコドゥルビッチ


6

PHP、28バイト

<?=date(Y_m_d,time()+864e4);

人間が読めるバージョン、35バイト:

<?=date(Y_m_d,strtotime("100day"));

ほぼ読み取り可能、34バイト:

<?=date(Y_m_d,strtotime(1e2.day));

また、時間を印刷が受け入れられた場合-4バイト:置き換えるY_m_drc

100日間でフランスの国民の祝日です。


アンダースコアにより、「なぜアンダースコアになるのか、それが定数なのか?いいえ、文字列OH WAIT 'SPACES' !!」賢い。
-Martijn

@Martijnを有効にするE_NOTICEと、わかります:Y_m_dは未定義の定数で、PHPは文字列を想定しています。これは、キーワード事前定義された定数、大文字と小文字を区別しないtruefalseおよびを除く有効な単語(すべての関数名を含む)で機能しますnull
タイタス

5

Ruby、16バイト

p Time.now+864e4

オンラインでお試しください!


これに答えようとしていた、いい。しかし、とで異なる結果が得られ864e48640000その理由はよくわかりません。TIOのせいにします。編集:を使用するpと、2つの値の結果が異なります。しかし、を使用する場合puts、それらは同じです。
カタツムリ_

わかりません、両方で同じ結果が得られます。例を投稿できますか?たぶん、ロケールに依存しますか?
GB

p Time.now+864e4p Time.now+8640000TIOで約4日遅れています。私はそれを複数回試しました。ただし、を使用する場合puts、この区別は存在しません。私のロケールが重要かどうかはよくわかりませんが、US Eastはかなり普通のはずです。
カタツムリ

5

Javascript、29 26 25バイト

@ASCIIのみのおかげで3バイト節約できました!

@JohanKarlssonのおかげで1バイト節約

new Date(+new Date+864e7)

document.body.innerHTML=new Date(+new Date+864e7)


1
あなたは使用することができます864e7代わりに864*10e6
ASCIIのみの

1
あなたは使用して1つのバイトを保存することができます+new Date代わりにDate.now()
ヨハン・カールソン

1
これはスニペットです。含める必要がありますconsole.log
mbomb007


4

Vim、27バイト

:r!date "+\%F" -d"+100 day"

オンラインで試してみてください!

ここに画像の説明を入力してください

編集:不要なスペース文字を削除しました。


2
Linuxを使用している場合はdate、このページ上のものであるdate -d100dayことがけれども役立つかどうかわから、ない
ASCIIのみ

私は:r!date +\%F -d100dayこれも動作します(少なくとも私のPC(C)で)テストしますが、HyperNeutrinoすでにbashで使用しているのと同じです。
12431234123412341234123

ええと、vimを削除してbashで実行するだけでバイトを節約できます。
デビッドコンラッド

4

MATL、9バイト

Z'100+1XO

出力形式は15-Jul-2017(最も読みやすいと思います)です。に変更1XO2XOて、例で使用されている形式を取得します07/15/17

オンラインでお試しください!

説明

Z'      % Push current date and time as a serial date number
100+    % Add 100
1XO     % Convert to string with format 'dd-mmm-yyyy'. Implicitly display

4

SQL(Microsoft)、35 31バイト

SELECT DATEADD(D,100,GETDATE())

d代わりにDAYを使用して、内部のスペースを削除できますDATEADD
mbomb007

あなたが使えることをも知りませんでしたd。私が使用しddたりday、実際に。私はそれを試したところ、うまくいきました。
mbomb007

3

Javaの8、77、61のバイト

()->System.out.print(java.time.LocalDate.now().plusDays(100))

オンラインでお試しください!


定型文を含めない理由はありますか?(つまり、「クラスA {public static。。。」)Javaの場合、完全なプログラムにはatが必要だと思います。ラムダを実行できます()->java.time.LocalDate.now().plusDays(100)
NonlinearFruit

私は答えを編集する前にそれを持っていました。定型文とともに94バイトでした。私はjavaでゴルフをするのは初めてです。したがって、それを含める必要があるかどうかについては確信がありません。
Keerthana Prabhakaran

2
提出物(特に指定されていない限り)は、完全なプログラム(修正なしでインタープリターによって実行可能)または関数のいずれかです。
NonlinearFruit

3

C#、103 97バイト

6バイトを節約してくれたraznagulに感謝します!

using System;class P{static void Main(){Console.Write(DateTime.Now.AddDays(100).ToString("d"));}}

現在の日付を読み取り、100日を追加し、結果をM/d/YYYY形式で表示する完全なプログラム。

いくつかのバイトを追加することで、日付形式を変更できます。

using System;class P{static void Main(){Console.Write(DateTime.Now.AddDays(100).ToString("d-M-yyyy"));}}

定型コードを排除するために-C#が非常にコンパクトであることが正確にわかっていない-匿名関数を使用できます:

C#ラムダ、49 43バイト

()=>DateTime.Now.AddDays(100).ToString("d")

完全なプログラム:

using System;

class P
{
    static void Main()
    {
        Func<string> f = 
        ()=>DateTime.Now.AddDays(100).ToString("d");

        Console.WriteLine(f());
    }
}

完全なプログラムについては、System.DateTime.Now ...を記述して、「システムの使用」を回避できると思います。
-Taemyr

1
@Taemyr:それも長くなりますConsole.Write
raznagul

2
@adrianmp:の.ToString("d")代わりにを使用すると、6バイト節約できます.ToShortDateString()
raznagul

3

Noodel、8 バイト

]5@LaƇ⁺ƈ

それを試してみてください:)


使い方

]5@LaƇ⁺ƈ
]5@La    # The string "]5@La" gets pushed onto the stack which in base 98 represents 8,640,000,000.
     Ƈ   # Pushes an integer that represents the current time where highest resolution is milliseconds.
      ⁺  # Add the time and the string which will be interpreted as 8,640,000,000ms.
       ƈ # Convert the integer to human readable time.
         # Implicitly output to the screen.

<div id="noodel" code="]5@LaƇ⁺ƈ" input="" cols="80" rows="2"/>

<script src="https://tkellehe.github.io/noodel/noodel-latest.js"></script>
<script src="https://tkellehe.github.io/noodel/ppcg.min.js"></script>


文字Theは、ユニコード文字U + 0187であり、1バイトで表示するには大きすぎます。ƈ(U + 0188)についても同様です。したがって、これは8文字の長さですが、最小バイト長は10です。
iFreilicht17年

1
@ iFreilicht、Noodelは独自のエンコーディングを使用しています。エディターは、視覚的に機能するようにすべてをUTF-16で行いますが、解析する前にNoodelコードページに基づいてエンコードされます。
tkellehe

3

Mathematica、26 21バイト

@KiranLinsuainのおかげで-5バイト!

Today+Quantity@"100d"

時間を含めることが許可されている場合、2バイトを節約できます。

Now+Quantity@"100d"

1
「Now + Quantity ["100d"]」はかなり削減しますが、すべてのバージョンで常に機能するとは限りません。
kl

3

C、87 46 44バイト

アルバートレンショーのおかげで2バイト節約

f(){time_t t=time(0)+864e4;puts(ctime(&t));}

出力は曜日と時間を考慮して十分に柔軟であるため、使用するlocaltime必要もtm構造もまったくありません。

古い答え

f(){time_t t=time(0)+8640000;char b[9];strftime(b,9,"%d-%m-%y",localtime(&t));puts(b);}

Khaled.Kの回答に基づきますが、tm構造をいじる代わりに、100日に相当する秒数を直接time_t値にます。また、時刻や曜日なしで日付のみを出力します。

ゴルフ番組で起こるはずであるように、コンパイル時にいくつかのい警告が生成されます。

オンラインでお試しください!

ゴルフをしていない:

f(){
    // Current time + 100 days
    time_t t=time(0)+8640000;
    // Buffer for printing formatted time
    char b[9];
    // Print the time in format dd-mm-yy to buffer
    strftime(b,9,"%d-%m-%y",localtime(&t));
    // print buffer
    puts(b);
}

2
に置き換え8640000て2バイト削る864e4
アルバートレンショー


2

IBM / Lotus Notesの数式、29バイト

@Adjust(@Today;0;0;100;0;0;0)

残念ながら、行方不明@Adjustの末尾が必要です。0'shh:mm:ss

時間を表示することも許可されていた場合、に変更@Todayする@Nowと27で2バイト節約されます


2

JavaScript(ES6)、44バイト

_=>new Date(Date.now()+864e7).toDateString()

時刻付きの日付を返すことが許容される場合、25バイト:

_=>Date(Date.now()+864e7)



2

Swift 3、39バイト

print(Date(timeIntervalSinceNow:864E4))

私はあなたが必要ないと主張しますimport foundation;。SwiftはiOSでのみ動作し、そこで自動的にインポートされます。
アルバートレンショー

ここにはまだあまり多くのSwiftの回答がありませんので、コンセンサスが何であるかはわかりません。しかし、あなたは良い点があると思う、私はインポートを削除します:)
マット

@Albert SwiftはMac OSおよびLinuxでも動作します。ただし、インポートが必要かどうかの意味はわかりません。
デビッドコンラッド

2

C、120 113バイト

#include <time.h>
f(){time_t t=time(0);struct tm*tm=localtime(&t);tm->tm_mday+=100;t=mktime(tm);printf("%s",ctime(&t));}

ライブデモ

#include <stdio.h>
#include <time.h>

void PrintDatePlus100days()
{
    // obtain current time
    time_t t = time( 0 );

    // convert to datetime struct
    struct tm *tm = localtime( &t );

    // add 100 days
    tm->tm_mday += 100;

    // convert to time_t
    t = mktime( tm );

    // print time in readable format
    puts( ctime( &t ) );
}

私が間違っていなければ、#include ...関数を送信するときに定型句を考慮する必要はありません。(たとえば、Javaは答えませんimport。その場合は必要ありません)
カシオレナン

JavaでCássioRenan@次のようなデフォルトの輸入をカウントする必要はありません。java.lang.*ただ、我々はカウントされませんどのように、stdio.hstdlib.hさえJavaで、あなたはどちらかのカスタム輸入を検討するかのようなクラス名にパスを配置する必要がありC.しかしにjava.util.Date、それはあなたのスコアにカウントされます。
Khaled.K

2
使用したのはなぜprintf()でしょうputs()も動作しませんか?
12431234123412341234123

2

PowerShell、23

(get-date).adddays(100)

これは私の初めての試みなので、建設的なフィードバックをお願いします。ありがとう!


2

R(REPL)、14バイト

Sys.Date()+100

Ideoneで試してみてください。


1
これはスニペットです。関数の結果として、または完全なプログラムとしてSTDOUTに結果を出力するには、コードが必要です。
mbomb007


@ mbomb007 REPL回答許可されますが、それらは別の言語と見なされます。
デニス

@Dennis以前はREPLとしてリストされていませんでした。
mbomb007

1

Python、63バイト

from datetime import*
print(datetime.now()+timedelta(days=100))

非常にシンプルなソリューションです。datetime.now()結果はの結果と同じtypeであるためtimedelta、幸いにも2つを加算します。


関数である必要はありません。あなたは削除することができlambda:、それはまだ完全なプログラムになります。
NonlinearFruit

@NonlinearFruitはい。ただし、print追加する必要があり、同じバイト数になります。

あなたがPythonの2を使用する場合は、中括弧を削除することができprint、1バイト保存する
デッドポッサム

これdays=はオプションであり、5 + 1バイト(python2 printの括弧)を節約します
フェリペナルディバティスタ

57バイトまでゴルフ:from datetime import*;print datetime.now()+timedelta(100)
Mr. Xcoder



1

Oracle、34バイト

SELECT CURRENT_DATE+100 FROM DUAL;

1

パイソン2 +パンダ0.19.1、56の 51バイト

from pandas import*
print Timestamp('now','D')+100
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.