倒计时100天


25

通常在活动开始前100天开始倒数计时,这可能是由于我们的10级系统。随处可见此示例:

  • 距离生日100天
  • 距婚礼100天
  • 距离选举还有100天
  • 距毕业仅100天
  • 距她的到期日100天
  • 距足球赛季100天
  • 直到获得狂热者徽章的100天

您得到图片。似乎事件发生前的第100天仅次于实际事件。因此,对于这个挑战,我需要知道100天后的日期,这样我才能确定自己也应该开始倒数。

输入项

无输入

输出量

根据标准公历从当前日期开始的100天(请务必考虑leap年)。输出是灵活的,只要日期格式是人读能力(例如2016-10-810-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倒数-除非那只需要四天,而不是一百天……
Toby Speight

Answers:


42

Excel 10

=NOW()+100

示范

enter image description here


1
也可以在Google表格中使用。
Okx

11
Excel总是很适合涉及日期分析的代码高尔夫。
Engineer Toast'Apr

2
是否有适用于excel的语言包,其中的NOW函数仅用两个字母拼写出来?在这种情况下,您可以节省1个字节。
iFreilicht

13
是的,荷兰语有'nu()'
Tominator '17

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字节因为之间的空间100day是不必要的。
-1字节,因为我不再需要引号,因为我在字符串中没有空格。
删除后的空格为-1字节-d(感谢ASCII码!)


新的收藏夹命令+1
NonlinearFruit

@NonlinearFruit嗯,是的,这可能是我最喜欢的命令之一。谢谢!
HyperNeutrino

你不需要的空间后-d
ASCII-仅

仅限@ASCII哦,好的。谢谢!
HyperNeutrino

10

PowerShell,10个字节

(date)+1e2

感谢ConnorLSW提供的+ 1e2技巧。

看来双打(1e2是双打)也被添加为天。

先前版本,12个字节:

(date)+"100"

显然,您可以在PowerShell中为日期添加字符串。该字符串"100"将转换为100天TimeSpan


2
好了,不要问我为什么,但即使(date)+100不工作,(date)+1e2不......我想1e2其实是一个double,而100是一个数字,直到它的编译,即你不能说100.GetType(),但你可以1e2.GetType()-这是-2,并给我们带来用Excel抽奖!
colsw

@ConnorLSW如果它有助于或加剧混乱,100则视为在字符串"100"作为天数时增加了100个滴答声。两者都是有效的PS,但只有一个可以满足我们的需求。
马特

@Matt 1e6仍然是一个数字,并且被添加为几天?
colsw

那很有趣。也许还有更多事情发生在这个数字超过阈值的地方。...我不知道
马特

我认为这与旧的DATE类型有某种关系,DATE类型是8字节的浮点数,其中天以整数增量表示。我想这就是Excel所使用的。
DankoDurbić17年


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假定一个字符串。这适用于任何有效字(包括所有的函数名)除了关键字预定义的常量和不区分大小写truefalsenull
泰特斯

5

红宝石,16字节

p Time.now+864e4

在线尝试!


要回答这个,很好。但是我得到了不同的结果864e48640000而且我也不知道为什么。我怪TIO。编辑:当您使用时p,这两个值会产生不同的结果。但是,当您使用时puts,它们是相同的。
snail_ '17

我不明白,两者的结果相同。你能举个例子吗?也许取决于语言环境?
GB

p Time.now+864e4p Time.now+8640000在TIO方面落后了大约4天。我尝试了多次。但是,如果使用puts,则不存在这种区别。我真的不知道我的语言环境是否重要,US East应该很正常:PI猜我回家后会尝试在自己的PC上运行它。
snail_

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
您可以使用+new Date而不是Date.now()
Johan Karlsson

1
这是一个片段。您需要包括console.log
mbomb007 '17


4

Vim,27个字节

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

在线尝试!

enter image description here

编辑:删除了不必要的空格字符。


2
如果您使用的是Linux date,则此页面上的会是date -d100day,但不确定是否会有所帮助
纯ASCII码

我对此进行了测试:r!date +\%F -d100day(至少在我的PC(C)上),但是与HyperNeutrinobash中已使用的相同。
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 '17

甚至都不知道你能用d。我使用dd还是day在实践中。我只是尝试了一下,它奏效了。
mbomb007'4

3

爪哇8,77,61个字节

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

在线尝试!


有没有理由不包括样板?(即“ A类{public static...。”)对于Java,我认为at是完整程序所必需的。你可以做一个lambda ()->java.time.LocalDate.now().plusDays(100)
NonlinearFruit

在编辑答案之前,我已经有了。它是94个字节以及样板。我是Java新手。因此,我不确定是否必须包括该内容!
Keerthana Prabhakaran

2
提交(除非另有说明)可以是完整程序(可由某些解释程序运行而无需修改)或函数。
NonlinearFruit

3

C#,103 97字节

感谢raznagul节省了6个字节!

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#lambda,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 ...以避免“使用System;”。
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>


字符Ƈ是Unicode字符U + 0187,它太大而无法在单个字节中显示。ƈ(U + 0188)也是如此。因此,尽管这是8个字符长,但最小字节长度为
10。– iFreilicht

1
@iFreilicht,Noodel使用它自己的编码。该编辑器会执行UTF-16中的所有内容以在视觉上更好地工作,但是会在解析之前根据Noodel代码页进行编码。
tkellehe

3

Mathematica,26岁 21字节

-5个字节,感谢@KiranLinsuain!

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
Shave 2 bytes by replacing 8640000 with 864e4
Albert Renshaw


2

IBM/Lotus Notes Formula, 29 bytes

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

Unfortunately @Adjust requires the trailing 0's for the missing hh:mm:ss.

If we were allowed to display the time as well then changing @Today to @Now would save 2 bytes for 27.


2

JavaScript (ES6), 44 bytes

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

25 bytes if returning a date with the time is acceptable:

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


2

F# (53 bytes)

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

Don't see a lot of F# answers on here. Kudos!
David Conrad

2

Swift 3, 39 bytes

print(Date(timeIntervalSinceNow:864E4))

I'd argue you don't need the import foundation;. Swift runs just on iOS and that is auto imported there.
Albert Renshaw

There aren't too many Swift answers here yet, so not sure what the consensus is. But I think you have a good point, I'll remove the import :)
Matt

@Albert Swift also runs on Mac OS and Linux. I don't know what that means for whether the import is required, though.
David Conrad

2

C, 120 113 bytes

#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));}

Live Demo

#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 ) );
}

If I'm not mistaken, you don't need to account for #include ... boilerplate when submitting functions. (Java answers, for example, don't need import in that case)
Cássio Renan

@CássioRenan in Java you don't need to count the default imports like java.lang.*, just like how we don't count stdio.h and stdlib.h in C. But even in java, you need to either consider custom imports or put the path in the class name like java.util.Date, and that counts in your score.
Khaled.K

2
Why using printf() would puts() not also work?
12431234123412341234123

2

PowerShell, 23

(get-date).adddays(100)

This is my first ever try, so please give me constructive feedback. Thanks!



1

Python, 63 bytes

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

Very simple solution really. Because the datetime.now() result is the same type as the result of timedelta, it happily adds the two together.


It doesn't have to be a function. You could remove the lambda: and it would still be a full program.
NonlinearFruit

@NonlinearFruit Yes but print would have to be added and that makes it the same number of bytes.

If you use Python 2, you can remove brackets in print to save 1 byte
Dead Possum

the days= is optional, that would save 5+1 bytes (python2 print's brackets)
Felipe Nardi Batista

Golfed down to 57 bytes: from datetime import*;print datetime.now()+timedelta(100)
Mr. Xcoder

1

JavaScript, 38 Bytes

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

A little bit shorter than ASCII-only answer.

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


1

Golang, 58 bytes

import ."time"
func f(){Println(Now().AddDate(0, 0, 100))}

Full Program

package main

import . "time"
import . "fmt"

func main() {
    Println(Now().AddDate(0, 0, 100))
}

try it online!


1

Oracle, 34 bytes

SELECT CURRENT_DATE+100 FROM DUAL;

1

Python 2 + Pandas 0.19.1, 56 51 bytes

from pandas import*
print Timestamp('now','D')+100
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.