दिनांक क्या है?


26

चुनौती

अजीब, यह अभी तक नहीं किया गया है: वर्तमान तिथि आउटपुट।

नियम

दिनांक प्रारूप आपको निम्नानुसार होना चाहिए:

YYYY-MM-DD

जहां महीने और दिन को 10 से कम होने पर जीरो से पैडेड करना चाहिए।

उदाहरण के लिए, यदि कार्यक्रम 24 मई 2017 को चलाया जाता है, तो इसे आउटपुट करना चाहिए

2017-05-24

तिथि या तो हमेशा UTC में या स्थानीय दिनांक में हो सकती है।

आपको लीपस वर्ष संभालना चाहिए। यानी लीप इयर्स में, फरवरी में 29 दिन होते हैं लेकिन एक सामान्य वर्ष में 28 दिन।

जीतना

बाइट्स में सबसे छोटा कोड जीतता है।


14
हैप्पी 10k प्रतिनिधि!
रोहन झुनझुनवाला

1
और सबसे तेजी से बढ़ते धागा I've कभी देखा पर बधाई। : डी
टाइटस

@ टिट्स आपने देखा होगा हैलो, वर्ल्ड! : डी
बीटा डिके

... और सामान्य वर्षों में फरवरी में 31 दिन का कोर्स होता है
edc65

@ edc65 मुझे वास्तव में यह जानना चाहिए था कि फ़रवरी २ ९ दिनों की लंबी छलांग है: पी
बीटा डिके

जवाबों:


12

बैश , 16 7 बाइट्स

नील (और फर्ग्यूस्क) (आउटपुट के लिए आवश्यक कोई पाइप नहीं) के लिए -8 बाइट्स -12431234123412341234123 के लिए
बाइट धन्यवाद -I! फ्लैग के साथ बिल्ट-इन विकल्प का उपयोग करें !)

date -I

इसे ऑनलाइन आज़माएं!


2
क्यों echo $(...)?
नील

क्या इसे आउटपुट की आवश्यकता नहीं है?
जोनाथन एलन

6
dateआउटपुट पहले से ही, आउटपुट को stdout में पाइप किया गया है। आपको इसे पाइप करने की आवश्यकता नहीं है echo, जो इसे स्टडआउट करने के लिए पाइप करता है। इसे ऑनलाइन आज़माएं!
फर्ग्यूसक

लेकिन यहां तक ​​कि अगर आप वास्तव में उपयोग करना चाहते हैं echo, तो कम से कम echo `date +%F`
मैनेटवर्क

5
उपयोग क्यों नहीं -I?
12431234123412341234123

10

PHP, 17 बाइट्स

<?=date('Y-m-d');

1
वास्तव में, YYYY-MM-DDThh:mm:ss+hh:mmएक आईएसओ 8601 स्वरूपित तिथि और ये 11 बाइट्स हैं: <?=date(c);पूरे सामान को प्रिंट करें। ;)
टाइटस

<?=strstr(date(c),T,1);सी प्रारूप को थोड़ा मौका देने के लिए
जोर्ग ह्यूल्सरमैन


7

बैश, 15 बाइट्स

printf '%(%F)T'

नमूना रन:

bash-4.4$ printf '%(%F)T'
2017-05-24

इसे ऑनलाइन आज़माएं!


इससे भी बेहतर है कि मैं एसओ पर पाया, अनजान था T
जोनाथन एलन

@JonathanAllan, इसे केवल Bash 4.2 में जोड़ा गया था और Bash 4.3 तक इसे प्रारूपित करने के लिए एक तर्क की आवश्यकता थी।
मैनेटवर्क

5

जावास्क्रिप्ट (ईएस 6), 34 बाइट्स

_=>new Date().toJSON().split`T`[0]

f=

_=>new Date().toJSON().split`T`[0]

console.log(f());


हम्म, एक ही लंबाई के रूप में_=>new Date().toJSON().slice(0,10)
स्टीव बेनेट

4

SQLite, 13 वर्ण

select date()

अच्छा लड़का, SQLite। अन्य SQL बोलियों को आमतौर पर current_dateया तो आवश्यकता होती है date(now())

नमूना रन:

bash-4.4$ sqlite3 <<< 'select date()'
2017-05-24

1
MySQL मेंcurdate
टाइटस

4

गणितज्ञ, 20 बाइट्स

DateString@"ISODate"

9
कभी-कभी मैं इन चुनौतियों में आता हूं कि यह देखने के लिए कि क्या गणितज्ञ के पास बिल्ट-इन नहीं है, लेकिन यह देखने के लिए कि क्या है
पुनपुन 1000


3

एक्सेल, 24 बाइट्स

=TEXT(NOW(),"yyy-mm-dd")

एक्सेल अभी भी केवल 3 के साथ 4-अंकीय वर्ष करेगा y


2
Google शीट जोड़ देंगे ")। एक्सेल नहीं होगा। यह अंत में जोड़ देगा , )लेकिन केवल आपको संकेत देने के बाद, इसके लिए अतिरिक्त उपयोगकर्ता इनपुट की आवश्यकता होगी और स्कोर को फिर से ड्राइव करना होगा। 24 बाइट्स शायद सबसे छोटा एक्सेल जवाब है जब तक कि हम डिफ़ॉल्ट रूप से आईएसओ तिथि प्रारूप का उपयोग करके क्षेत्रीय सेटिंग्स की अनुमति नहीं देते हैं और यह बहस के लिए तैयार है
इंजीनियर टोस्ट

@EngineerToast धन्यवाद। मैं ठीक कर दूँगा।
स्कॉट मिलनर

2

आर , 10 बाइट्स

Sys.Date()

इसे ऑनलाइन आज़माएं!


1
चूँकि sys.dateपहले से ही एक फंक्शन है, तो आपको ऐड नहीं करना है (), इसलिए यह केवल 8 बाइट्स है :)
JAD

@JarkoDubbeldam not true, () आवश्यक है
डी। नेल्सन

@ D.Nelson codegolf.meta.stackexchange.com/questions/2419/… Sys.Date एक फ़ंक्शन है, इसलिए समाधान के रूप में पर्याप्त होगा। स्पष्ट रूप से इसे कॉल करने की आवश्यकता नहीं है।
JAD

@JarkoDubbeldam आमतौर पर ऐसा ही होता है, लेकिन मुझे लगता है कि चूंकि चुनौती 'ISO-8601 में वर्तमान तिथि को आउटपुट करने की है' इसलिए मुझे वास्तव में इसे आउटपुट करने की आवश्यकता है।
ग्यूसेप

1
खैर, हाँ, और अंतिम पंक्ति Sys.Dateआपके लिए आउटपुट करती है। यह तब होता है जब आपके पास एक समाधान होता है जो function(x)आपके साथ शुरू होता है , आप इसे स्पष्ट कॉल के साथ समाप्त नहीं करते हैं। यह सिर्फ बिल्ट-इन कैसे स्कोर किया जाता है।
JAD


2

ऐलिस , 9 बाइट्स

/oT\
@%;'

इसे ऑनलाइन आज़माएं!

व्याख्या

मैं पाठक के लिए एक अभ्यास के रूप में सटीक नियंत्रण प्रवाह को छोड़ दूंगा, लेकिन जो रैखिक कोड ऑर्डिनल मोड में चलाया जा रहा है वह है:

%T'T%;o@

और यहाँ है कि यह क्या करता है:

%   Split an implicit empty string around an implicit empty string. Really doesn't
    do anything at all.
T   Push the current datetime as a string like "2017-05-24T20:53:08.150+00:00"
'T  Push "T".
%   Split the datetime string around the "T", to separate the date from the time.
;   Discard the time.
o   Output the date.
@   Terminate the program.

एक तरीका यह गोल्फ का हो सकता है कि %कार्डिनल मोड में प्रोग्राम को शून्य से एक डिवीजन के साथ समाप्त करने के लिए पुन: उपयोग किया जाए, लेकिन एकमात्र लेआउट जिसके साथ मैं आया हूं वह निम्नलिखित है:

\;T
\%o'

लेकिन यहाँ, %वास्तव में कार्यक्रम को समाप्त नहीं करता है, क्योंकि हम 111 ( 'o) को पहले से ही धक्का देते हैं, इसलिए शून्य से कभी भी विभाजन नहीं होता है।

सिद्धांत रूप %में ;, इससे छुटकारा पाने के लिए पुन: उपयोग करना भी संभव हो सकता है , क्योंकि समय के आसपास की तारीख को विभाजित करने की कोशिश करने से समय ही समाप्त हो जाएगा।


2

स्माइलबासिक 3, 29 बाइट्स

SB में एक तारीख का तार बनाया गया है ... लेकिन यह गलत प्रारूप में है! यह डैश के बजाय स्लैश का उपयोग करता है, अच्छा नहीं। इसके अलावा, यह स्वाभिमानी मूल होने के नाते, यह कोई वैश्विक प्रतिस्थापन कार्य नहीं है। मुझे लगता है कि मुझे इसे स्वयं करना होगा ...

D$=DATE$D$[4]="-
D$[7]="-
?D$

2

VBA, 5 25 बाइट्स

?Date अप्रत्याशित, सिस्टम शॉर्ट डेट सेटिंग्स पर निर्भर करता है

?Format(Now,"yyyy-mm-dd")

आउटपुट:

2017-05-25 

6
यह उत्तर अत्यधिक अस्थिर है और बहरेपन से, अधिकांश कंप्यूटरों पर काम नहीं करेगा क्योंकि यह पूरी तरह से उपयोगकर्ता पर निर्भर करता है कि उनका सिस्टम शॉर्ट डेट फॉर्मेट है [सेटिंग्स के तहत -> Win10 में दिनांक और समय] 'YYYY-MM-DD- . The default format for this is M ' पर सेट करें / YYYY` और इस प्रकार Dateफ़ंक्शन के आउटपुट के लिए यह है 5/25/2017। इसे सही करने के लिए आपके उत्तर को Formatकॉल में लपेटना होगा ।
टेलर स्कॉट

2
?format(now,"yyyy-mm-dd")nowdate
@TaylorScott

1
@ नस्ल, यह सही है। यह मेरी जानकारी के लिए, वीबीए
टेलर स्कॉट

1
@TaylorScott इसे इंगित करने के लिए धन्यवाद, मुझे सिस्टम तिथि सेटिंग्स पर निर्भरता के बारे में पता नहीं था। इस दिनांक स्वरूप है तो मैं एक छोटे से अति आत्मविश्वास का यहाँ था, मेरे पीसी पर और सामान्य रूप में अपने देश में डिफ़ॉल्ट।
मैकीज लिपिंस्की


1

QBIC , 33 बाइट्स

B=_D?_sB,-4|+@-`+_sB,2|+A+_sB,4,2

स्पष्टीकरण:

B=_D        Assign the system's date to B$
            This is in American mm-dd-yyyy format, so we'll need to do some reformatting
?_sB,-4|    PRINT substring B, take 4 chars from the right
 +@-`         plus the string literal "-", now A$
 +_sB,2|      plus the leftmost two chars
 +A           and A$ again
 +_sB,4,2     plus the middle part.

1

सीजाम , 22 15 बाइट्स

et3<{sY0e[}%'-*

इसे ऑनलाइन आज़माएं!

-7 बाइट्स चैलेंजर 5 के लिए धन्यवाद।

स्पष्टीकरण:

et                       Get array with [year,month,day,stuff...]
  3<                     Slice array to get [y,m,d] 
    {                    For each item do:
     s                     To string
      Y0e[                 add a 0 to the beginning of the string if it is shorter than 2 chars.
          }%             End for each
            '-*          Join the array with "-" as a separator

आप e[15 बाइट्स के लिए (पैड ऐरे) का उपयोग कर सकते हैं :et3<{sY0e[}%'-*
फलों

@ चैलेंजर 5 शांत है। धन्यवाद
FrodCube




1

पॉवर्सशैल, 26 17 बाइट्स

Date -f yyy-MM-dd

9 बाइट्स के लिए @ConnorLSW को धन्यवाद।


आप यहां बहुत कुछ बचा सकते हैं। date -f 'yyyy-MM-dd'
colsw

धन्यवाद दोस्त। मैं Powershell के लिए नया हूँ। इसलिए, मैंने यहां अपना भाग्य आजमाया
शिवप्रसाद वडिवेल

@ शिवप्रकाश वी - कोई चिंता नहीं, यदि आप चाहें तो अधिक मूल पीएस गोल्फिंग ट्रिक्स के साथ सहायक पदों की एक जोड़ी के लिए इस धागे की जांच करें
कोल्स


1

MATLAB / ऑक्टेव , 25 15 बाइट्स

datestr(now,29)

इसे ऑनलाइन आज़माएं!


बिल्ट-इन फ़ंक्शन nowएक अजीब MATLAB धारावाहिक प्रारूप में वर्तमान प्रणाली की तारीख देता है।

datestrएक अनुरोधित प्रारूप की एक स्ट्रिंग में अजीब धारावाहिक प्रारूप को प्रारूपित करता है - जो इस मामले में है 'YYYY-mm-dd'। यह पता चला है कि MATLAB के लिए पूर्वनिर्धारित प्रारूपों की एक सूची है datestr। ISO8601 उनमें से एक है और 29 नंबर द्वारा दर्शाया गया है, जो 10 बाइट की बचत की अनुमति देता है।


1

पायथन 2 ,  53  40 बाइट्स

-10 बाइट्स गेटोर फ़ेकेट के लिए धन्यवाद (ISO-8601 डेट ऑब्जेक्ट के लिए डिफ़ॉल्ट प्रारूप है)

from datetime import*
print date.today()

इसे ऑनलाइन आज़माएं!

कैसे?

datetime.date.today()datetime.dateस्थानीय दिनांक की जानकारी वाली कोई वस्तु लौटाएगा ।

printउस ऑब्जेक्ट का एक स्ट्रिंग प्रतिनिधित्व प्रिंट करेगा, यह ऑब्जेक्ट के __str__फ़ंक्शन को कॉल करेगा ।

से डॉक्स :

  • date.__str__(): A के लिए date d, str(d)के बराबर है d.isoformat()

  • date.isoformat(): ISO 8601 प्रारूप stringमें दिनांक का प्रतिनिधित्व करते हुए लौटें । उदाहरण के लिए, ।‘YYYY-MM-DD’date(2002, 12, 4).isoformat() == '2002-12-04'


1
import datetime;print datetime.date.today()यह केवल 43 बाइट्स है और डेटाइम का उपयोग करता है। क्यों छोटा संस्करण भी हटा दिया गया है?
गबोर फेकेट

@ GáborFekete धन्यवाद (मुझे लगता है कि आपको वास्तव में पोस्ट करना चाहिए था, यह पर्याप्त रूप से अलग है)। अन्य उत्तर शायद हटा दिया गया था क्योंकि यह सही ढंग से स्वरूपित स्ट्रिंग को प्रिंट नहीं करता था। मैंने इस बारे में एक स्पष्टीकरण जोड़ा है कि यह वास्तव में क्यों काम करता है (इसलिए जब तक कि इसमें शामिल है print)। एक और तीन कर (बुराई) को बचाया import*
जोनाथन एलन

मैं चाहता था, लेकिन एक और समाधान था जो मेरे से भी छोटा था लेकिन किसी कारण से हटा दिया गया था।
गैबोर फेकेट

... जिसे अब printहटाए जाने के बाद संपादित किया गया है, फिर हटा दिया गया है।
जोनाथन एलन

1

क्रिस्टल , 30 बाइट्स 24 बाइट्स 21 बाइट्स

निक क्लिफर्ड के लिए -6 धन्यवाद

-3 रूबी में घोंघा के जवाब को देखकर

p Time.now.to_s("%F")

इसे ऑनलाइन आज़माएं!


2
मुझे पूरा यकीन है कि आप इसका उपयोग कर सकते हैं %F। इसके अलावा, PPCG पर क्रिस्टल को देखकर अच्छा लगा!
निक क्लिफर्ड

1
@ निक क्लिफर्ड मैंने इसे टियो पर देखा और सोचा कि यह एक अच्छा नाम है।
टाइटसलुक्रेटियस


1

सी #, 46 45 बाइट्स

_=>System.DateTime.Now.ToString("yyy-MM-dd");

@Raznagul को एक बाइट धन्यवाद दिया।


2
मैं कहां से डाउनलोड Sytemकरूं?
बजे द एग्रीग्राफर

6
@EriktheOutgolfer यह एक कस्टम रैपर है जिसे मैंने Systemनामस्थान के आसपास बनाया है क्योंकि मैं एक ही टाइपो करता रहा ...
TheLethalCoder

4
आपको पता है कि स्थानीय स्तर पर आपके द्वारा बनाया गया सामान पीपीसीजी पर अनुमति नहीं है, जब तक कि यह प्रश्न पूछे जाने से पहले प्रकाशित न हो। : पी
एरिक आउटोलॉफ़र

1
@EriktheOutgolfer धिक्कार है, अगली बार मैं एक छोटा रैपर भी
बनाऊंगा

1
के रूप में वर्ष के लिए अग्रणी शून्य की आवश्यकता नहीं है प्रारूप स्ट्रिंग "yyy-MM-dd"भी काम करेगा।
राजनागुल

1

जावा 8, 26 32 बाइट्स

()->java.time.LocalDate.now()+""

केविन क्रूज़सेन के लिए निश्चित प्रारूप धन्यवाद


वाह, जावा वास्तव में छोटा है ... मैंने कभी नहीं सोचा था कि मैं दिन देखूंगा: डी
बीटा

@BetaDecay यह छोटा है, लेकिन वर्तमान में मानक कोडगुल्फ नियमों का अनुपालन नहीं कर रहा है। यह एक स्निपेट के बजाय एक फ़ंक्शन होना चाहिए, और आवश्यक आयातों को भी गिना जाना चाहिए। इसलिए इसके ()->java.time.LocalDate.now().toString()बजाय होना चाहिए । फिर, यदि आप गोल्फ कर सकते हैं .toString()करने के लिए +""तो यह हो जाता है, ()->java.time.LocalDate.now()+""कुल (में 32 बाइट्स )।
केविन क्रूज़सेन

1

सी ++ 14, 143 बाइट्स 139 बाइट्स

#include <cstdio>
#include <time.h>
int main (){time_t t;char D[11];time(&t);strftime(D,sizeof D,"%Y-%m-%d",localtime(&t));printf("%s",D);}

टिमटेक ने मुझे बताया कि मुझे सभी स्थानों की आवश्यकता नहीं है

मुझे परखें!


क्या आप उन स्थानों में से कुछ नहीं निकाल सकते?
टिमटेक

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.