100 일 카운트 다운


25

이벤트 10 일 전에 카운트 다운을 시작하는 것이 일반적입니다. 아마도 우리의 기본 10 시스템 때문입니다. 이에 대한 예는 어디에서나 찾을 수 있습니다.

  • 생일까지 100 일
  • 결혼식까지 100 일
  • 선거까지 100 일
  • 졸업까지 100 일
  • 마감일까지 100 일
  • 축구 시즌까지 100 일
  • 광신자 배지를받을 때까지 100 일

당신은 그림을 얻는다. 이벤트 전 100 일은 실제 이벤트에 이어 2 위인 것 같습니다. 따라서이 도전을 위해 100 일 후의 날짜가 무엇인지 알아야하므로 카운트 다운을 시작해야 할 대상을 결정할 수 있습니다.

입력

입력이 없습니다

산출

표준 그레고리력을 기준으로 현재 날짜에서 100 일이 지난 날짜 (윤년을 고려해야합니다) 출력은 한 날짜 형식이기 때문에 유연 인간 읽기 수 (예를 들어 2016-10-8, 10-8-16, [ 2016, 10, 8 ], 10/8/16 12:00:00 AM).

승리

코드 골프 : 바이트 단위의 최단 코드


오늘 (2017 년 4 월 5 일)부터 100 일은 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
현재 시간을 출력에 추가 할 수 있습니까?
Titus

1
@Titus 아니오, 단지 미래의 날짜
NonlinearFruit

1
대부분의 답변에는 현재 날짜와 시간이 포함되어 있습니다.
GB

1
@GB 미래 날짜를 출력 할 때는 사람이 읽을 수있는 한 형식이 유연합니다 (타임 스탬프 포함 가능). 그러나 현재 시간 / 날짜는 허용되지 않습니다.
NonlinearFruit

5
" 우리의 bas 10 시스템 때문에 "? 우리가 이진수로 세면 100에서 카운트 다운이 아니라 4 일밖에 걸리지 않는다는 점을 제외하고 100에서 카운트 다운 할 것입니다.
Toby Speight

답변:


42

엑셀, 10

=NOW()+100

데모

여기에 이미지 설명을 입력하십시오


1
Google 스프레드 시트에서도 작동합니다.
Okx

11
Excel은 항상 구문 분석 날짜가 포함 된 코드 골프에 적합합니다.
엔지니어 토스트

2
NOW 함수에 두 글자 만 쓰인 Excel 용 언어 팩이 있습니까? 이 경우 1 바이트를 절약 할 수 있습니다.
iFreilicht

13
네, 네덜란드어는 'nu ()'를 가지고 있습니다
Tominator

2
날짜 별로 , =TODAY()+100또는=TEXT(NOW()+100,"MM/dd/yyyy")
KyleMit

20

배쉬, 17 16 15 14 13 바이트

date -d100day

date명령이 상대 타이밍에 대해 매우 유연한 입력을 취하는 것으로 나타났습니다 . 또한 일을 좋아 할 수있는 1 year, 1 week ago, yesterday, 등 꽤 멋지다.

bash는 문법에 신경 쓰지 않음을 인식하여 -1 바이트.
바이트 -1 사이의 공간으로 인해 100그리고 day불필요하다.
문자열에 공백이 없기 때문에 더 이상 따옴표가 필요하지 않기 때문에 -1 바이트.
뒤에 공백을 제거하여 -1 바이트 -d(ASCII 전용)


새로운 즐겨 찾기 명령 +1
NonlinearFruit

@NonlinearFruit Hah, 예, 아마도 내가 가장 좋아하는 명령 중 하나 일 것입니다. 감사!
HyperNeutrino

뒤에 공백이 필요하지 않습니다-d
ASCII 전용

@ASCII 전용 아, 알겠습니다. 감사!
HyperNeutrino

10

PowerShell, 10 바이트

(date)+1e2

+ 1e2 트릭을위한 ConnorLSW에게 감사합니다.

복식 ( 1e2더블)도 일로 추가 된 것으로 보입니다 .

이전 버전, 12 바이트 :

(date)+"100"

분명히 PowerShell에서 날짜에 문자열을 추가 할 수 있습니다. 문자열 "100"은 100 일로 변환됩니다 TimeSpan.


2
그래 왜 나 한테 물어하지만, 비록하지 않습니다 (date)+100,하지 작업을 수행 (date)+1e2... 않는 것 같아요 1e2을 실제로 double반면, 100이 컴파일 될 때까지의 숫자입니다, 즉, 당신이 호출 할 수 100.GetType()있지만, 수 1e2.GetType()-의 -2 우리를 가져온다 엑셀로 무승부!
colsw

@ConnorLSW 혼란에 도움이되거나 추가 100되면 문자열 "100"이 일로 간주되는 곳에 100 틱을 추가하는 것으로 보입니다 . 둘 다 유효한 PS이지만 하나만 우리가 필요한 것을 수행합니다.
Matt

@Matt 1e6는 여전히 숫자이며 일로 추가됩니까?
colsw

그때 흥미 롭습니다. 아마도 더 임계 값 이상 그 숫자에 도달이 .... 나도 몰라 후드가 벌어지고
매트

나는 그것이 날짜 가 정수 증가로 표현되는 8 바이트 부동 소수점 숫자 인 이전 DATE 유형 과 관련이 있다고 생각합니다 . Excel에서 사용하고있는 것 같습니다.
Danko Durbić


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_dr또는 c.

100 일 만에 프랑스의 국경일입니다.


밑줄로 저에게 "왜 밑줄이 있습니까? 상수입니까? 아니오, 문자열 OH WAIT 'SPACES'!!" 영리한.
Martijn

@Martijn 켜고 E_NOTICE알다시피 : Y_m_d정의되지 않은 상수이며 PHP는 문자열을 가정합니다. 이것은 그렇다 (모든 기능 이름을 포함) 유효한 단어와 함께 작동 키워드 , 미리 정의 된 상수 및 사례를 구분 true, falsenull.
Titus

5

루비 , 16 바이트

p Time.now+864e4

온라인으로 사용해보십시오!


이것에 대답하려고 했어요. 그러나 나는 다른 결과를 얻을 수 864e48640000내가 아주 이유를 알고하지 않습니다. 나는 TIO를 비난합니다. 편집 :을 사용할 때 p두 값이 다른 결과를 생성합니다. 그러나을 사용할 때도 puts동일합니다.
snail_

이해가되지 않습니다. 두 가지 모두 동일한 결과를 얻습니다. 예를 게시 할 수 있습니까? 아마도 지역에 따라 다를 수 있습니까?
GB

p Time.now+864e4p Time.now+8640000TIO에서 약 4 일 뒤 입니다. 나는 여러 번 시도했다. 그러나를 사용 puts하면이 구분이 존재하지 않습니다. 로케일이 중요한지 잘 모르겠습니다. 미국 동부는 꽤 정상적이어야합니다.
snail_

5

자바 스크립트, 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 11

음, vim을 제거하고 bash에서 수행하면 바이트를 절약 할 수 있습니다.
David Conrad

4

MATL , 9 바이트

Z'100+1XO

출력 형식은 15-Jul-2017(가장 많이 읽을 수 있음)입니다. 변경 1XO하기 위해 2XO, 예제에 사용되는 형식을 얻을 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

자바 8, 77 , 61 바이트

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

온라인으로 사용해보십시오!


상용구를 포함하지 않은 이유가 있습니까? (즉, 'class A {public static...') Java의 경우 전체 프로그램이 필요하다고 생각합니다. 람다를 할 수 ()->java.time.LocalDate.now().plusDays(100)있습니다.
NonlinearFruit

나는 대답을 편집하기 전에 그것을 가지고있었습니다. 상용구와 함께 94 바이트였습니다. 나는 자바로 골프를 처음 사용합니다. 그러므로 나는 그것을 포함시켜야하는지 확실하지 않습니다!
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;"사용을 피하기 위해 System.DateTime.Now ...를 작성할 수 있다고 생각합니다.
Taemyr

1
@Taemyr : 필요하기 때문에 더 길어질 것입니다 Console.Write.
raznagul

2
@adrianmp : .ToString("d")대신을 사용하여 6 바이트 저장을 저장할 수 있습니다 .ToShortDateString().
raznagul

3

누델 , 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>


문자 Ƈ은 유니 코드 문자 U + 0187이며, 너무 커서 단일 바이트로 표시 할 수 없습니다. ƈ (U + 0188)도 마찬가지입니다. 8 바이트 길이이지만 최소 바이트 길이는 10입니다.
iFreilicht

1
@iFreilicht에서 Noodel 은 자체 인코딩을 사용합니다. 편집기는 시각적으로 더 잘 작동하기 위해 UTF-16 으로 모든 것을 수행하지만 구문 분석하기 전에 Noodel 코드 페이지를 기반으로 인코딩됩니다 .
tkellehe

3

수학, 26 21 바이트

@KiranLinsuain 덕분에 -5 바이트!

Today+Quantity@"100d"

시간 포함이 허용되면 2 바이트를 절약 할 수 있습니다.

Now+Quantity@"100d"

1
"Now + Quantity ["100d "]"는 약간 줄이지 만 모든 버전에서 항상 작동하지는 않습니다.
kl

3

C, 87 46 44 바이트

Albert Renshaw 덕분에 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
대체하여 2 바이트를 면도 8640000864e4
알버트 렌쇼


2

IBM / Lotus Notes 공식, 29 바이트

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

불행히도 누락에 @Adjust대한 후행이 필요합니다 .0'shh:mm:ss

우리는뿐만 아니라 시간을 표시하도록 허용 한 경우 변경 @Today하기 @Now27 2 바이트를 저장합니다.


2

자바 스크립트 (ES6), 44 바이트

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

시간이 포함 된 날짜를 반환 할 수있는 경우 25 바이트 :

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


2

F # (53 바이트)

printf"%s"(DateTime.Now.AddDays(100.0).ToString("d"))

여기에 많은 F # 답변이 표시되지 않습니다. 명성!
David Conrad

2

스위프트 3, 39 바이트

print(Date(timeIntervalSinceNow:864E4))

나는 당신이 필요하지 않다고 주장합니다 import foundation;. Swift는 iOS에서만 실행되며 자동으로 가져옵니다.
Albert Renshaw

아직 Swift 답변이 너무 많지 않으므로 합의가 무엇인지 확실하지 않습니다. 하지만 좋은 점이 있다고 생각합니다. 가져 오기를 제거하겠습니다. :)
Matt

@Albert Swift는 Mac OS 및 Linux에서도 실행됩니다. 그러나 가져 오기가 필요한지 여부는 무엇을 의미하는지 모르겠습니다.
David Conrad

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 ...기능을 제출할 때 상용구 를 설명 할 필요가 없습니다 . (예를 들어, 자바 답변은 필요하지 않습니다 import)
Cássio Renan

Java에서 @ CássioRenan은 java.lang.*우리가 계산하지 않는 방식 stdio.hstdlib.hC 와 같이 기본 가져 오기를 계산할 필요 가 없습니다 . 그러나 Java에서도 사용자 정의 가져 오기를 고려하거나 클래스 이름에 경로를 넣어야합니다 java.util.Date. 그리고 그것은 당신의 점수에 포함됩니다.
Khaled.K

2
사용하는 것도 효과 printf()puts()없는 이유 는 무엇 입니까?
12431234123412341234123

2

PowerShell, 23

(get-date).adddays(100)

이것은 첫 번째 시도이므로 건설적인 피드백을 보내 주시기 바랍니다. 감사!



1

파이썬, 63 바이트

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

정말 간단한 해결책입니다. datetime.now()결과는 의 결과와 동일 type하므로 timedelta두 개를 행복하게 더합니다.


함수일 필요는 없습니다. 를 제거해도 lambda:여전히 전체 프로그램이됩니다.
NonlinearFruit

@NonlinearFruit 네,하지만 print추가해야하므로 같은 바이트 수입니다.

Python 2를 사용하는 경우 print1 바이트를 절약하기 위해 대괄호를 제거 할 수 있습니다.
Dead Possum

days=그 5 + 1 바이트 (python2 절약 할 수, 선택 사항 print의 괄호)
펠리페 나르디 바티스타

57 바이트까지 골프 :from datetime import*;print datetime.now()+timedelta(100)
Xcoder Mr.

1

자바 스크립트, 38 바이트

d=new Date;d.setDate(d.getDate()+100);d

ASCII 전용 답변 보다 약간 짧습니다 .

document.write(eval("d=new Date;d.setDate(d.getDate()+100);d"))



1

오라클, 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.