क्या आप मुझे समय बता सकते हैं? [बन्द है]


55

आप जानते हैं कि आपकी भाषा की घड़ी / समय एपीआई टूट गई है और वे विश्वसनीय नहीं हैं।

तो आपको सिस्टम समय / तारीख तक पहुंचने के लिए किसी भी अंतर्निहित एपीआई का उपयोग करने की अनुमति नहीं है।

लेकिन आप यह भी जानते हैं कि आपकी भाषा की तारीख गणित करने की क्षमता, और एक चर में दिनांक / समय मान को बनाए रखना सही है।

एक कार्यक्रम लिखें जो किसी तिथि / समय / घड़ी एपीआई के कॉल के बिना वर्तमान तिथि / समय को प्रिंट करता है। उदाहरण के लिए DateTime.Now, GetDate()और इसी तरह के कार्यों की अनुमति नहीं है।

सबसे upvotes के साथ जवाब जीतता है।

एक टाई के मामले में, अधिक सटीक जीत (जो सेकंड तक सटीक है, फिर मिलीसेकंड, फिर माइक्रोसेकंड, और इसी तरह)।


2
दूसरे शब्दों में, टाइम सर्वर से बात करें?
पीटर टेलर

3
हां, आप यह कर सकते हैं। एक संभव उपाय।
माइक्रोबियन

3
बल्कि अनिर्दिष्ट प्रश्न। मुझे लगता है कि सबसे अधिक वोट एक जवाब की तरह इकट्ठा होंगे print(input("Please enter the current time"))
हावर्ड

7
मेरा पैसा "अलग भाषा के लिए REPL लोड करें" और इसके गैर-टूटे हुए समय एपीआई को कॉल करने के लिए है।
जोनाथन वान मैट्रे

2
@swich जिसे भी अनुमति नहीं है। क्योंकि आपका उत्तर अविश्वसनीय हो जाएगा।
माइक्रोबियन

जवाबों:


121

जावा

लगभग सभी मौजूदा समाधान यह मानते हैं कि स्थानीय / दूरस्थ कंप्यूटर वर्तमान समय के बारे में झूठ नहीं बोल रहा है (क्या आप टी -600 को भी मानेंगे?)।
समय गणना में मुख्य बिंदु एक शुद्ध प्रकृति पर भरोसा है
यह एंड्रॉइड ऐप उपयोगकर्ता को आकाश की तस्वीर लेने के लिए कहता है और यह बकाया परिशुद्धता के साथ वर्तमान समय की भविष्यवाणी कर रहा है:

public void onActivityResult(int requestCode, int resultCode, Intent data) 
{
   if (resultCode == RESULT_OK) 
   {
      Uri selectedImageUri = data.getData();
      this.imageView.setImageURI(selectedImageUri);

      TimeGuesser guesser = new TimeGuesser(this);
      String result = guesser.guessTimeFromImage(selectedImageUri);
      this.textView.setText(result);   
   }
}

public class TimeGuesser {

    private Context context;
    public TimeGuesser(Context context)
    {
        super();
        this.context = context;
    }

    public String guessTimeFromImage(Uri uri) {
        Bitmap bitmap = null;
        try {
            bitmap = MediaStore.Images.Media.getBitmap(this.context.getContentResolver(), uri);
        } catch (IOException e) {
            return "There is no sky. Everyone's going to die";
        }

        float brightness = getBrightness(bitmap);

        if (brightness < 90.0)
        {
            return "It's sooo late";
        } else {
            return "It's sooo early";
        }
    }

    private float getBrightness(Bitmap bitmap)
    {
        float R, G, B;
        R = G = B = 0.0f;
        int pixelColor;
        int width = bitmap.getWidth();
        int height = bitmap.getHeight();
        int size = width * height;

        for (int x = 0; x < width; ++x) {
            for (int y = 0; y < height; ++y) {
                pixelColor = bitmap.getPixel(x, y);
                R += Color.red(pixelColor);
                G += Color.green(pixelColor);
                B += Color.blue(pixelColor);
            }
        }

        R /= size;
        G /= size;
        B /= size;

        float brightness =  (0.2126f*R ) + (0.7152f*G) + (0.0722f*B);
        return brightness;
    }
}

परिणाम:

यहाँ छवि विवरण दर्ज करें


यहाँ छवि विवरण दर्ज करें


49
के लिए +1 "There is no sky. Everyone's going to die": डी
दरवाज़े

6
"हर कोई मरने वाला है - या आपकी उंगली कैमरे के ऊपर है। मूल रूप से एक ही बात है।"
corsiKa

कृपया जावा
user1886419

3
यह निश्चित रूप से मेरा पसंदीदा है, मुझे उम्मीद है कि यह एक टाईब्रेकर के लिए नीचे नहीं आता है ...
ड्राइडन लॉन्ग

21
ग्रहणों के बारे में क्या? वे जावा विकास के दौरान यहाँ एक समस्या का कारण बन सकते हैं!
बाय

64

माणिक

चलो ईमानदार रहें: समय केवल तब बदलता है जब कुछ stackoverflow.com पर पोस्ट किया जाता है ;)

सबसे ऊपरी प्रश्न में "XYs ago" लेबल का समय स्क्रिप्ट निकालता है।

require 'net/http'
source = Net::HTTP.get('stackoverflow.com', '/')

puts source.match(/span title=\"(.*)\" class=\"relativetime/)[1]

आउटपुट:

2014-03-10 18:40:05Z

2
केवल दूसरे के लिए सटीक ... और दूसरा कि SO अपनी ntp..shameful पूजा को प्रशस्त करता है
डेविड विल्किंस

3
<केंद्र> नहीं पकड़ सकता है वह आता है
दरवाज़े

@Doorknob मुझे वास्तव में उस पोस्ट को प्रिंट करने और मेरी दीवार पर लटकाए जाने की आवश्यकता है।
वचर्जिन

30

दे घुमा के

ऐशे ही? (की आवश्यकता है wgetऔर grep)

wget -qO- 'http://www.wolframalpha.com/input/?i=current+time'|grep ' am \| pm '

आउटपुट मुझे कुछ मिनट पहले मिला:

                    Why am I seeing this message? 
  context.jsonArray.popups.pod_0200.push( {"stringified": "6:08:38 pm GMT\/BST  |  Monday, March 10, 2014","mInput": "","mOutput": "", "popLinks": {} });

या यह? (की आवश्यकता है wgetऔर eog)

wget http://c.xkcd.com/redirect/comic/now
eog ./now
rm ./now

आउटपुट अब मुझे मिलता है: (छवि xkcd द्वारा )

समयक्षेत्र http://c.xkcd.com/redirect/comic/now के साथ विश्व मानचित्र


@tbodt यकीन नहीं है कि आप इस टिप्पणी को देखेंगे। आपका संपादन अमान्य है क्योंकि एक वेबपेज देते http://c.xkcd.com/redirect/comic/nowसमय एक छवि http://xkcd.com/nowदेता है।
ace_HongKongIndependence

9
मुझे केवल यह एहसास हुआ कि कॉमिक ने दिन के समय के आधार पर परिवर्तन प्रदर्शित किए। वह तो कमाल है।
RJFalconer

2
यह दया है कि कार्टून दिन के उजाले की बचत को शामिल नहीं करता है। (उदाहरण के लिए, पूर्वी अमेरिका यूके से केवल चार घंटे पीछे है क्योंकि मैं यह लिखता हूं, न कि सामान्य पांच जो कार्टून दिखाता है।) अधिक महत्वपूर्ण रूप से, उत्तरी और दक्षिणी गोलार्ध दो घंटे के अंतराल से निकल सकते हैं।
डेविड रिचरबी

16
मैं कहता हूं कि +1 से xkcd दिन की बचत के समय का अवलोकन नहीं करता है, और आशा है कि बाकी दुनिया भी इस प्रकार है।
होसिएरेईई

29

श / coreutils

touch . && stat . -c %z

कुछ अमानक प्रारूप में दिनांक आउटपुट:
YYYY-MM-DD hh:mm:ss.nanoseconds +timezone
हालांकि मुझे लगता है कि यह लोकेल पर निर्भर हो सकता है।


1
काम नहीं करता है। यह अनुमति अस्वीकृत कहती है :)
devnull

5
@ फाइल अपने सिस्टम को बहुत टूट गया है। इसे ठीक करेंcd $(mktemp -d)
mniip

मेह, दिर समय एक पुस्तकालय समारोह का उपयोग कर सेट किया गया है।
नवीन

@ नवीन यह सेट नहीं है। निर्देशिका इनोड को केवल लिखने के लिए खोला जाता है, और कर्नेल अपने माइम को अपडेट करता है। set mtime to thisकहीं भी कोई स्पष्ट
सीसकॉल

@ मणिपाल वेल, ठीक है। मुझे अभी भी लगता है कि touchयह एक लाइब्रेरी फंक्शन / कमांड है क्योंकि इसका वांछित दुष्प्रभाव है।
नवीन

25

पीएचपी

इस तथ्य को उजागर करें कि uniqid()समय के आधार पर एक आईडी लौटाता है।

$u=hexdec(substr(uniqid(),0,8));

$y=floor($u/31536000);
$u-=$y*31536000;
$y+=1970;

$d=floor($u/86400);
$u-=$d*86400;

$h=floor($u/3600);
$u-=$h*3600;

$m=floor($u/60);

$s=$u-$m*60;

echo 'Year='.$y.' Days='.$d.' Hours='.$h.' Minutes='.$m.' Seconds='.$s;

मेरे परीक्षण के दौरान, यह लौट आया Year=2014 Days=79 Hours=18 Minutes=9 Seconds=49:।
मुझे नहीं पता कि क्या मैं dateसही तरीके से प्रारूपित कर सकता हूं , इसलिए मैंने इसे मैन्युअल रूप से परिवर्तित किया।


2
मुझे यकीन है कि यह नियमों को झुका रहा है ... uniqidअभी भी आपकी भाषा का एक हिस्सा है ... लेकिन फिर भी आपको
mniip

क्यों ? हाँ, uniqidनिम्न स्तर के समय API का उपयोग करें , लेकिन जब आप किसी बाहरी सर्वर से समय का अनुरोध करते हैं, तब भी कहीं न कहीं एपीआई में निम्न स्तर की कॉल होगी ...
माइकल एम।

1
मैं यहाँ समय एपीआई कॉल की बात नहीं कर रहा हूँ। मैं कह रहा हूं कि यह अभी भी भाषा का एक हिस्सा है।
18

2
@mniip हाँ, लेकिन uniqid()इससे पहले कि यह सवाल पूछा गया था वह टूट गया था। इस प्रश्न में केवल घड़ी / समय के एपीआई को तोड़ा गया है
राइजिंग

23

डीएनएस

क्या हम केवल अपनी मशीन का अविश्वास करते हैं? यदि हां, तो क्या यह गिनती है?

ssh $othermachine date

यदि वह गणना नहीं करता है, तो DNS अपडेट से समय निकालना निश्चित रूप से होता है:

dig stackexchange.com | grep WHEN

23

दे घुमा के

बस हमेशा बिल्कुल सटीक और सही होने के लिए:

echo "Now"

या प्रेरित:

echo "Now, do something useful today"

10
toady, संज्ञा, बहुवचन निकाय। एक परिणामी चापलूसी; चापलूस। ( स्रोत )
ace_HongKongInd डिपेंडेंस

3
नहीं absolutely precise, कमांड चलाने में अभी भी कुछ नन्हा-नन्हा सा समय लगेगा।
user80551

2
@ user80551 और आप गलत थे, अब हमेशा पूरी तरह से सटीक हैं। यदि आप अपनी घड़ी के समय को देखते हैं तो छवि आपकी आंख तक पहुंचने से पहले बदल जाती है। लेकिन अब, अब हमेशा है।
मास्टर ११7

10
@ user80551 echo "Then"उस आवश्यकता के लिए काम करता है।
तैमूर

2
-मैं क्या देख रहा हूँ? जब यह कार्यक्रम में हो रहा है? -अभी! आप अभी देख रहे हैं सर, अब जो भी हो रहा है उस कार्यक्रम में जो अभी हो रहा है। -तो फिर क्या कहना? -यह पास हो गया है -जब?
-अब

20

कर्ल - आपकी पिंग दर जो भी हो सटीक

curl -s time.nist.gov:13

अच्छा है, लेकिन यह UTC में है, क्या यह स्थानीय समय में नहीं होना चाहिए?
ओरियन

24
@orion क्या हम ब्रह्मांड के लिए स्थानीय नहीं हैं?
प्यूरफेरेट

यह उन 2 डिफ़ॉल्ट सर्वरों में से एक है जो विंडोज़ समय को सिंक करने के लिए उपयोग करता है।
इस्माईल मिगुएल

@IsmaelMiguel इसका उपयोग कई गैर-मानक प्रणालियों द्वारा भी किया जाता है ..
डेविड विल्किंस

मैं सिर्फ इतना कह रहा हूँ। मैं यह नहीं कह रहा हूं कि यह एकमात्र जगह है जहां इसका उपयोग किया जाता है। मैं सिर्फ एक तथ्य बता रहा हूं।
इस्माइल मिगुएल


13

अजगर २

तो, घड़ी सही है लेकिन समय एपीआई ठीक किया गया है, है ना? कच्चे फाइलसिस्टम टाइमस्टैम्प की जाँच क्यों नहीं की जाती। इसके बजाय एक परीक्षण फ़ाइल बनाने के बजाय, हम सिर्फ हमारे अपने पहुँच टाइमस्टैम्प के बाद से स्क्रिप्ट का उपयोग किया है चलाने के लिए (भले ही संकलित किया गया है) पढ़ने के लिए। दूसरे के लिए सटीक। "

import os
h, m = divmod(os.stat('t.py').st_atime % 86400, 3600)
print h+1, m // 60, m % 60

इसे बचाया जाना चाहिए और इसे चलाना चाहिए t.py। वैकल्पिक रूप से, स्क्रिप्ट नाम रनटाइम पर प्राप्त करेंinspect.getfile(inspect.currentframe())

नोट * कभी-कभी पिछले सेकंड के लिए सटीक ।


क्या हमें जांच करनी चाहिए t.pycया t.pyoइसके बजाय?
काइल केली

1
अच्छी सोच लेकिन ये तब तक मौजूद नहीं होंगी जब तक आप इस फाइल को मॉड्यूल के रूप में आयात नहीं करते (या इन्हें मैन्युअल रूप से बनाते हैं)। वैसे भी मैंने जाँच की और अजगर (ओएस एक्स पर 2.7.2) .pyफ़ाइल को स्पर्श करेगा भले ही .pycवह मौजूद हो। तो यह हमेशा सही ढंग से काम करता है।
एलेक्सिस

विख्यात और उत्थानित। अच्छी तरह से किया।
काइल केली

10

माणिक

HTTP, लेकिन केवल प्रतिक्रिया मेटा-डेटा का उपयोग करके।

require 'uri'
require 'net/http'

def get_now
  uri = URI.parse("http://google.com")
  http = Net::HTTP.new(uri.host, uri.port)
  request = Net::HTTP::Get.new(uri.request_uri)
  rsp = http.request(request)
  rsp['date']
end

9

ps

psसमय नहीं बता सकता ? यह!

sleep 1&  ps -o lstart -p $!

प्रक्रिया पृष्ठभूमि में शुरू की गई है और psप्रक्रिया शुरू होने का समय बताती है। चूंकि प्रक्रिया पृष्ठभूमि में शुरू हुई थी, प्रक्रिया का प्रारंभ समय अब के समान ही बहुत अधिक है।

इसके अलावा, लाभ यह है कि स्थानीय समय क्षेत्र में समय प्राप्त होता है। और आपको इंटरनेट कनेक्शन की भी आवश्यकता नहीं है!


7

VBA

क्योंकि मुझे नहीं करना चाहिए

Public Function DateTime() As String
Dim myNTPsvr As String
Dim dattime As String
Dim oHTTP As Object

myNTPsvr = "time.windows.com"
Set oHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
oHTTP.Open "GET", "http://" & myNTPsvr & "/", False
oHTTP.Send

DateTime = oHTTP.GetResponseHeader("Date")

Set oHTTP = Nothing
End Function

उपयोग ?DateTimeकरने के लिए उपयोग करें, या यदि आप इसे एक्सेल में रखते हैं, तो =DateTime()एक सूत्र के रूप में काम करेगा।
जीएमटी में तारीख / समय वापस आ गया है - मैं इसे एक स्ट्रिंग से स्थानीय समय में बदलने के लिए व्यर्थता में एक अभ्यास के रूप में छोड़ देता हूं


6

बैश + last+ head+cut

दूसरे के लिए सटीक। lastलॉग फ़ाइल का उपयोग करता है/var/log/wtmp

$ last -RF reboot | head -n1 | cut -c50-73
Tue Mar 11 09:38:53 2014
$ 

संपादित करें: headकेवल एक पंक्ति तक सीमित करने के लिए जोड़ा गया ।

EDIT: यह लिनक्स मिंट 13 दालचीनी 64-बिट पर काम करता है लेकिन ऐसा लगता है कि यह आपके डिस्ट्रो पर निर्भर करता है। sysvinit-utils(जो प्रदान करता है last) संस्करण (मेरे मामले में) 2.88dsf-13.10ubuntu11.1 lastसे पढ़ा जाता है, /var/log/wtmpइसलिए परिणाम उस लॉग फ़ाइल पर निर्भर करते हैं। नीचे टिप्पणी देखें।

संपादित करें: स्पष्ट रूप से यह सिस्टम अपटाइम पर निर्भर करता है ताकि आप यहां प्रमाण देख सकें http://imgur.com/pqGGPmE


जो यहां एक खाली लाइन देता है। और मैं नहीं यकीन है कि प्रासंगिक है, वहाँ से निकाला जा सकता के रूप में आदमी कुछ भी कर रहा हूँ last"। हर बार जब प्रणाली रिबूट में छद्म उपयोगकर्ता रिबूट लॉग" कहते हैं (और नहीं भी है कि यहाँ सही प्रतीत हो रहा है: pastebin.com/ArUaBcuY )
manatwork

@manatwork imgur.com/SeJX9RA दरअसल, -Fपूर्ण लॉगिन और लॉगआउट समय प्रिंट करता है। जैसा कि वर्तमान उपयोगकर्ता अभी भी लॉग इन है, लॉगआउट समय वर्तमान समय है। यह लिनक्स मिंट 13 दालचीनी 64 बिट पर है। यह स्थानीय निर्भर हो सकता है लेकिन मुझे इसमें संदेह है।
user80551

@manatwork यह यहाँ भी
user80551

2
मेहराब (सिस्टेम) पर टूटा हुआ। रिटर्न "अभी भी चल रहा है"।
ओरियन

5
दरअसल, "अभी भी चल रहा है" कम से कम दार्शनिक रूप से एक सही समय है।
ओरियन

5

अजगर

नैनोसेकंड प्रिसेंस प्राप्त करना तब तक मुश्किल होता है जब तक कि लौटाया गया समय उस प्रोग्राम के पूरा होने पर आधारित नहीं होता है, जब यह शुरू होता है। उस के साथ मन में यह एक कार्यक्रम खत्म होने पर आधारित समय की गणना करने के लिए और अधिक समझ में आता है। इसका मतलब यह है कि जब कोई प्रोग्राम अतिरिक्त परिशुद्धता प्राप्त करने के लिए दौड़ना बंद कर देता है तो हमें उसे नियंत्रित करना चाहिए।

import subprocess

def what_day_is_it(): return int(subprocess.check_output(["date", "+%dd"]))[:-2];

current_day = next_day = what_day_is_it # It's a bash call, 
while not current_day - next_day:
  next_day = what_day_is_it()
print "It's midnight."
print "Probably."

ध्यान दें कि जब अजगर घड़ी में बोर हो जाता है, तो या तो यह मान लेता है कि बैश घड़ी नहीं है या कम से कम बैश घड़ी को पता है कि यह किस दिन है। यदि नहीं, तो हम इसके बजाय इसका उपयोग कर सकते हैं:

def what_year_is_it(): return int(subprocess.check_output(["date", "+%yy"]))[:-2];

हालांकि थोड़ा धीमा हो सकता है। मैंने इसका परीक्षण नहीं किया है।


5

BrainFuck

>+++++++[-<++++++++>]<---.>+++++[-<+++++>]<++.---.>++++++++[-<-------->]<---.

आउटपुट:

5PM

मुझे लगता है कि यह लेखन के समय डेनवर में समय प्रदर्शित करता है। इस एलन जैक्सन वीडियो द्वारा यहाँ एल्गोरिथम की व्याख्या ।


xkcd.com/221 लेकिन समय के लिए, मैं देख रहा हूं।
वैल

@ वे दोनों संपत्ति साझा करते हैं कि वे क्रम में स्थिर हो गए, लेकिन गीत सही है। यह 5PM कहीं है। XKCD बात बहुत कुछ होती है क्योंकि नए डेवलपर्स को लगता है कि मैक्रो विस्तार समय में गणना करने से समय की बचत होती है।
सिल्वेस्टर

लेकिन यह वास्तव में समय बचाता है! परिणामस्वरूप निष्पादन योग्य वास्तव में।
वैल

5

माणिक

`date`

भाषा की घड़ी / समय एपीआई का उपयोग नहीं करता है।


वास्तव में यह क्या करता है?
होसच

1
शेल में दिनांक आदेश निष्पादित करता है और आउटपुट देता है।
bblack

4

मुझे "टाइम सर्वर से पढ़ना" विचार पसंद आया। हालांकि इसके स्वरूपण में सुधार हुआ, और कुछ शहरों को मनोरंजन के लिए जोड़ा गया।

पीएचपी

$page = file_get_contents("http://www.timeapi.org/utc/now");
echo "In London: ".date("H:i:s - jS F, Y", strtotime($page))."<br>";
echo "In Rome: ".date("H:i:s - jS F, Y", strtotime($page)+3600)."<br>";
echo "In Athens: ".date("H:i:s - jS F, Y", strtotime($page)+7200)."<br>";

4

दे घुमा के

echo "It's eight o'clock."

द गॉन शो के लिए धन्यवाद । (इसके अलावा, यह दिन में दो बार सही है!)



1
@squeamishossifrage अच्छा बिंदु। तो, अगर यह टाई-ब्रेक की बात आती है, तो मेरे पास 18 मिनट की सटीकता है! ;-)
डेविड रिचरबी


4

सी / WinAPI

इससे यह धारणा बन जाती है कि घड़ी को क्वेरी करने के लिए मेरे स्वयं के एपीआई कॉल टूट गए हैं, लेकिन सिस्टम स्वयं समय के साथ सही ढंग से काम कर सकता है।

// NO ERROR CHECKING - that's left as an exercise for the reader
TCHAR tmpfilename[MAX_PATH];
TCHAR tmpfilepath[MAX_PATH];

// get some information to create a temporary file
DWORD dwRes = GetTempPath(MAX_PATH, tmpfilepath);
UINT uiRes  = GetTempFileName(tmpfilepath, TEXT("golftime"), 0, tmpfilename);

// create the file
HANDLE hTempFile = CreateFile(tmpfilename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

// read the creation time of the file. accuracy is to, uhm... 10ms on NTFS?
FILETIME created;
GetFileTime(hTempFile, &created, NULL, NULL);

// convert the filetime to a system time (in UTC)
SYSTEMTIME systime;
FileTimeToSystemTime(&created, &systime);

std::cout << "Time is " <<
    systime.wHour << ":" << systime.wMinute << ":" << systime.wSecond << "." << systime.wMilliseconds << "\n";

// close the file and delete
CloseHandle(hTempFile);
DeleteFile(tmpfilename);

विचार एक अस्थायी फ़ाइल बनाने के लिए है, और सृजन का समय पढ़ता है, जो कि NTFS पर मुझे लगता है कि 10ms तक सटीक है। ध्यान दें कि आउटपुट का स्वरूपण iffy है, लेकिन यह विशुद्ध रूप से मैं आलसी हूं।

अभी मेरी मशीन पर आउटपुट: Time is 10:39:45.790


1
// NO ERROR CHECKING - that's left as an exercise for the reader- मुझे यह बेहतर नहीं है कि मैं इसे प्रोडक्शन कोड में
देखूं

4

जत्था

@echo off
echo.>>%0
for /f "tokens=2,3 skip=4" %%a in ('dir /TW %0') do echo %%a %%b & goto :EOF

बैच फ़ाइल (स्वयं) के लिए एक रिक्त लाइन लिखता है, फिर फ़ाइल के अंतिम लिखने का समय जांचता है।

H:\uprof>GetTime.bat
09:28 AM

H:\uprof>GetTime.bat
09:29 AM

3

HTML, CSS और जावास्क्रिप्ट / jQuery

ठीक है, तो मुझे पता है कि यह तकनीकी रूप से एक कार्यक्रम नहीं है, और शायद मानदंड से बाहर है, लेकिन केवल कुछ घंटों में, यह दुनिया की सबसे सटीक घड़ी होगी!

सीएसएस

@font-face {
    font-family:"DSDIGI";
    src:url("http://fontsforweb.com/public/fonts/1091/DSDIGI.eot") format("eot"),
    url("http://fontsforweb.com/public/fonts/1091/DSDIGI.ttf") format("truetype");
    font-weight:normal;
    font-style:normal;
}
#backer {
    background-image: url('http://i.imgur.com/w3W5TPd.jpg');
    width: 450px;
    height: 354px;
    color: red;
    font-family: 'DSDIGI';
}
#backer p {
    width: 100%;
    display: block;
    line-height: 325px;
    font-size: 60px;
}

एचटीएमएल

<div id="backer">
    <p>
        BEER<span id="fade">:</span>30
    </p>
</div>

jQuery

function start() {
    $('#fade').fadeOut(function() {
        $('#fade').fadeIn();
    });
    setTimeout(start, 1000);
}
start();

सबसे पहले मैं एक while(true)लूप करने जा रहा था , लेकिन फिर याद आया कि मैं किसी भी ब्राउज़र को क्रैश नहीं करना चाहता ...

यहाँ यह कार्रवाई में एक पहेली है: http://jsfiddle.net/E7Egu/

यहाँ छवि विवरण दर्ज करें


4
flare_points ++;
स्कर्लिफ

मैं प्यार करता हूँ कि 2 साल बाद कोई आता है और इसे नीचे-वोट करता है ... lol
ड्राइडन लॉन्ग

3

Emacs लिस्प

Google चीज हो गया है लेकिन emacs में नहीं!

(url-retrieve "http://www.google.com/search?q=time" (lambda(l)            
        (search-forward-regexp "[0-9]?[0-9]:[0-9][0-9][ap]m")
        (print (buffer-substring (point) (1+ (search-backward ">"))))))

2

नोड.जेएस / जावास्क्रिप्ट

var fs = require('fs'),
    util = require('util');

var date = null, time = null;

fs.readFile('/sys/class/rtc/rtc0/date', 'UTF-8', function(err, d) {
    date = d.trim();
    if(time)
        done();
})

fs.readFile('/sys/class/rtc/rtc0/time', 'UTF-8', function(err, t) {
    time = t.trim();
    if(date)
        done();
});

function done() {
    console.log(util.format('%sT%sZ', date, time));
}

1
कुछ आश्रितों को याद किया। लिनक्स स्वाद क्या है?
नहीं कि

1
क्या गायब है, / sys / वर्ग / rtc / rct0 निर्देशिका? मैं आर्क लिनक्स पर हूँ।
क्रिस

1
हाँ, यह वही है जो सभी * निक्स सिस्टम पर नहीं है, बहुत कम सभी सिस्टम में!
नहीं कि चार्ल्स

1

जावास्क्रिप्ट

new Date(performance.timing.navigationStart+performance.now())+''

चूंकि घड़ी / समय एपीआई टूट गया है, मैं समय पाने के लिए प्रदर्शन एपीआई का उपयोग करता हूं । फिर Dateइसे स्ट्रिंग करने के लिए केवल पार्स करने के लिए उपयोग किया जाता है।


2
यकीन नहीं होता कि क्या यह नियम फिट बैठता है :)
ओरिऑल

उस एपीआई का एक भयानक समर्थन है।
इस्माइल मिगुएल

1

पीएचपी:

 $n=PHP_SHLIB_SUFFIX=='dll'?strtotime(str_replace(PHP_EOL,' ',`date /t&time /t`).' GMT'):`date +%s`;

यह उपलब्ध कमांड लाइन इंटरफेस से सिस्टम का समय पढ़ेगा।

Backtick ऑपरेटर का उपयोग बस उसी के लिए किया जाता है: कमांड चलाएँ।

एक और तरीका होगा:

$_SERVER['REQUEST_TIME'];

जिसमें वर्तमान समय शामिल है जिस पर स्क्रिप्ट को बुलाया गया था।


क्या अभी भी समय के लिए आपके अपने सिस्टम पर निर्भर नहीं है?
मौरिस

2
प्रश्न की पहली पंक्ति : "आप जानते हैं कि आपकी भाषा की घड़ी / समय एपीआई टूट गई है और वे बिल्कुल भी विश्वसनीय नहीं हैं।" मुझे लगता है कि यह खुद को समझाता है।
इस्माइल मिगुएल

1

दे घुमा के

export PS1="(\t) $PS1"

नियमों को थोड़ा छोटा करें, लेकिन यह कभी भी समय पर काम नहीं करता है। यह मौजूदा समय में बाहर निकलने पर प्रदर्शित करेगा, और हर बार जब आप उसके बाद प्रवेश करेंगे।


1

सी#

यह सुपर-सटीक विधि काम करेगी - बशर्ते आप 0: 00: 00,0000 पर कार्यक्रम चलाएंगे

using System;
using System.Threading;

namespace ConsoleApplication1 {
  class Program {
    private static volatile int s_Hour;
    private static volatile int s_Minute;
    private static volatile int s_Second;
    private static volatile int s_Millisecond;

    class Looper {
      public int Length { get; set; }
      public Action Update { get; set; }
    }

    static void Loop(object args) {
      var looper = (Looper)args;
      while (true) {
        Thread.Sleep(looper.Length);
        looper.Update.Invoke();
      }
    }

    static void Main(string[] args) {
      var starter = new ParameterizedThreadStart(Loop);
      new Thread(starter).Start(new Looper { Length = 100, Update = () => { s_Millisecond = (s_Millisecond + 100) % 1000; } });
      new Thread(starter).Start(new Looper { Length = 1000, Update = () => { s_Second = (s_Second + 1) % 60; } });
      new Thread(starter).Start(new Looper { Length = 60 * 1000, Update = () => { s_Minute = (s_Minute + 1) % 60; } });
      new Thread(starter).Start(new Looper { Length = 60 * 60 * 1000, Update = () => { s_Hour++; } });

      Console.Out.WriteLine(@"Press e to exit, enter to write current time...");
      while (true) {
        string input = Console.In.ReadLine();
        if (input == "e") {
          Environment.Exit(0);
          return;
        }
        Console.Out.WriteLine("{0:00}:{1:00}:{2:00},{3}", s_Hour, s_Minute, s_Second, s_Millisecond);
      }
    }
  }
}

थ्रेड। केवल गारंटी देता है कि कोष्ठक में निर्दिष्ट न्यूनतम के लिए एक थ्रेड सो जाएगा। यह वैकल्पिक रूप से ज्यादा देर तक सो सकता है।
ब्रायन बोएचर

1

लिनक्स, अधिकांश गोले, RTC के साथ हार्डवेयर पर:

echo `cat /sys/class/rtc/rtc0/{date,time} | tr "\n" " "`

क्या यह दिनांक / समय API को कॉल नहीं करता है?
होश250 २२'१४

मुझे प्रतिध्वनि बिट नहीं मिलती है। संभवत: आप शब्द-युग्म-रिक्ति को सामान्य करना चाहते हैं, लेकिन यदि ऐसा है, तो trबिट क्यों करते हैं ? शायद आप बस चाहते हैं paste -d' ' /sys/class/rtc/rtc0/{date,time}?
कोजिरो

क्या होगा अगर मैंने रास्पबेरी पीआई पर यह कोशिश की, जिसमें आरटीसी नहीं है ?!
जॉर्ज

@kojiro हाँ, और आपका रास्ता क्लीनर है।
त्रैव

1

जावा

हम सभी जानते हैं कि Java Date / Time API अनुपयोगी और टूटा हुआ है। तो यहां एक फिक्स है जो (कम से कम सीधे) मौजूदा एपीआई में से किसी का भी उपयोग नहीं करता है। यह भी छलांग सेकंड का समर्थन करता है! :) आउटपुट UTC में है।

import java.lang.reflect.Field;
import java.net.HttpCookie;
import java.util.*;

public class FixedTimeAPI4Java {

    private static final List<Integer> MONTHS_WITH_30_DAYS = Arrays.asList(4, 6, 9, 11);
    private static final List<Integer> YEARS_WITH_LEAP_SECOND_IN_DECEMBER = Arrays.asList(1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1987, 1989, 1990, 1995, 1998, 2005, 2008);
    private static final List<Integer> YEARS_WITH_LEAP_SECOND_IN_JUNE =  Arrays.asList(1972, 1981, 1982, 1983, 1985, 1992, 1993, 1994, 1997, 2012);

    /**
    * Returns the UTC time, at the time of method invocation, with millisecond
    * precision, in format <code>yyyy-MM-dd HH:mm:ss.SSS</code>.
    */
    public String getTime() throws Exception {

        // The cookie is only used for accessing current system time
        HttpCookie cookie = new HttpCookie("Offline", "Cookie");
        Field created = HttpCookie.class.getDeclaredField("whenCreated");
        created.setAccessible(true);

        long millisecondsSinceEpoch = created.getLong(cookie);        
        long fullSecondsSinceEpoch = millisecondsSinceEpoch / 1000L; 

        int year = 1970, month = 1, dayOfMonth = 1, hour = 0, minute = 0, second = 0,
            millisecond = (int)(millisecondsSinceEpoch - (fullSecondsSinceEpoch * 1000L));

        ticks: 
        for (;; year++) {
            for (month = 1; month <= 12; month++) {
                for (dayOfMonth = 1; dayOfMonth <= daysInMonth(month, year); dayOfMonth++) {
                    for (hour = 0; hour < 24; hour++) {
                        for (minute = 0; minute < 60; minute++) {
                            for (second = 0; second < secondsInMinute(minute, hour, dayOfMonth, month, year); second++, fullSecondsSinceEpoch--) {
                                if (fullSecondsSinceEpoch == 0) {
                                    break ticks;
                                }
                            }
                        }
                    }
                }
            }
        }
        return String.format("%04d-%02d-%02d %02d:%02d:%02d.%03d", year, month,
            dayOfMonth, hour, minute, second, millisecond);
    }

    /**
     * Returns the seconds in the given minute of the given hour/day/month/year,
     * taking into account leap seconds that can be added to the last minute of
     * June or December.
     */
    private static int secondsInMinute(int minute, int hour, int day, int month, int year) {
        return (minute == 59 && hour == 23 && ((day == 30 && month == 6) || (day == 31 && month == 12))) 
                ? 60 + leapSecondsInMonth( month, year) 
                : 60;
    }

    /**
     * Returns the number of days in the given month of the given year.
     */
    private static int daysInMonth(int month, int year) {
        return month == 2 ? isLeapYear(year) ? 29 : 28
                : MONTHS_WITH_30_DAYS.contains(month) ? 30
                    : 31;
    }

    /** 
     * Returns whether the given year is a leap year or not. 
     * A leap year is every 4th year, but not if the year is divisible by 100, unless if it's divisible by 400.
     */
    private static boolean isLeapYear(int year) {
        return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) ? true : false;
    }

    /** 
     * Returns the number of leap seconds that were added to UTC time at the end of the given month and year.
     * Leap seconds are added (by the decison of International Earth Rotation Service / Paris Observatory)
     * in order to keep UTC within 0.9 seconds of international atomic time (TAI).
     * <p>TODO: implement parser for updated list at http://www.ietf.org/timezones/data/leap-seconds.list :)
     */
    private static int leapSecondsInMonth(int month, int year) {        
        return (year < 1972 || year > 2012) ? 0
                : (month == 6 && YEARS_WITH_LEAP_SECOND_IN_JUNE.contains(year)) ? 1
                    : (month == 12 && YEARS_WITH_LEAP_SECOND_IN_DECEMBER.contains(year)) ? 1
                        : 0;
    }

    public final static void main(String[] args) throws Exception {
        System.out.println(new FixedTimeAPI4Java().getTime());        
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.