মধ্যরাত থেকে আমি কীভাবে সেকেন্ড খুঁজে পাব?


11

dateপ্রোগ্রামটি ব্যবহার করে , আমি মধ্যরাত থেকে সেকেন্ডের সংখ্যা কীভাবে গণনা করতে পারি?


1
তারিখ "+ (% এইচ * 60 +% এম) * 60 +% এস" | বিসি
গ্রাওক্সিকদা

1
প্রতিধ্বনি $ (($ (তারিখ '+ (% এইচ * 60 +% এম) * 60 +% এস')))
গ্রাওক্সদা

উত্তর:


14

প্রতিযোগিতার পরিস্থিতি এড়াতে, এখনও জিএনইউ তারিখটি ধরে নিচ্ছেন:

eval "$(date +'today=%F now=%s')"
midnight=$(date -d "$today 0" +%s)
echo "$((now - midnight))"

এর সাথে zsh, আপনি এটি অভ্যন্তরীণভাবে করতে পারেন:

zmodload zsh/datetime
now=$EPOCHSECONDS
strftime -s today %F $now
strftime -rs midnight %F $today
echo $((now - midnight))

বহনযোগ্যভাবে, টাইমজোনগুলিতে যেখানে কোনও দিবালোক সংরক্ষণের স্যুইচ নেই, আপনি এটি করতে পারেন:

IFS=:
set -- $(date +%T)
echo "$((${1#0} * 3600 + ${2#0} * 60 + ${3#0}))"

${X#0}নেতৃস্থানীয় 0 সেঃ কিছু শাঁস যা পছন্দ স্ট্রিপ হয় bash, dashএবং poshসঙ্গে কারণ সমস্যার 09(যেখানে শেল এটা একটি অবৈধ অকট্যাল সংখ্যাকে হচ্ছে অভিযোগ)।


খুব চালাক এবং ভাল ব্যবহারের ভাল ব্যবহার
উলিরিচ ড্যাঞ্জেল

আমি বরং এই লাইনগুলি বরাবর কিছু ব্যবহার করব:IFS=: read -r today now <<< $(date +%F:%s); midnight=$(date -d "$today 0" +%s); echo $(( now - midnight ))
এক্স-ইয়ুরি

7

কোনও গাণিতিক প্রকাশের প্রয়োজন নেই, খাঁটি তারিখটি ব্যবহার করুন:

date -d "1970-01-01 UTC $(date +%T)" +%s

দুর্দান্ত উত্তর, শীর্ষ এক হওয়া উচিত।
লিওপোলোডো সান্জিক

1
Mac এ brew install coreutilsএবং প্রতিস্থাপন dateসঙ্গেgdate
কনর McCormick

2

বাশের উপর ভিত্তি করে , জিএনইউ সিস্টেমে মধ্যরাত থেকে মিলিসেকেন্ডে বর্তমান সময়টি পান , এটি এটি করা যেতে পারে:

$ now=$(date '+%s')
$ midnight=$(date -d 'today 00:00:00' '+%s')
$ echo $(( now - midnight ))
53983

2
আপনি নিশ্চিত করতে চান যে আপনি 23:59:59
স্টাফেন চ্যাজেলাস

এবং ফিরে রূপান্তর করতে:date -d @$seconds
চোরোবা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.