এক্স এর পর থেকে দিনের সংখ্যা গণনার একটি স্মার্ট উপায় কী?


11

আমি 17 ই নভেম্বর থেকে আমার বর্তমান অবস্থানে কাজ শুরু করেছি I আমি জানতে চাই যে এখন পর্যন্ত কত দিন চলেছে। একটি সহজ এবং দুর্দান্ত সমাধান নিয়ে আসতে লিনাক্সকে কীভাবে ব্যবহার করবেন সে সম্পর্কে কোনও ধারণা?


আমি পার্ল স্ক্রিপ্টে অনুরূপ কিছু করে শেষ করেছি; আমি সময়কালীন () ফাংশনটি ব্যবহার করে প্রথম যুগ থেকে নির্ধারিত তারিখে (উদাহরণস্বরূপ নভেম্বর 17) সেকেন্ডের সংখ্যাটি পেয়েছি, তারপরে বর্তমান যুগের তারিখ-সেকেন্ড থেকে বিয়োগ করেছি, তারপরে 86400 দ্বারা বিভক্ত (সেকেন্ডে এক দিন). আমি নিশ্চিত যে কেবলমাত্র শেল-সলিউশন সহ কেউই আসবেন :)
জেফ শ্যাচলার

2
সময়ের গাণিতিকগুলিতে প্রচুর স্পষ্টভাবে বিশেষ মামলা রয়েছে। ইউনিক্স টাইমস্ট্যাম্পগুলি বিয়োগ করা এবং 86,400 দ্বারা ভাগ করার মতো সাধারণ জিনিসগুলি আপনাকে একটি আনুমানিক উত্তর দেবে, আপনি বিশেষায়িত সময় গ্রন্থাগারটি ব্যবহার করা ভাল যা বিশেষ কেসগুলিকে বিবেচনা করে, উদাহরণস্বরূপ পাইথনের dateutil
রিড

1
তাত্ক্ষণিকভাবে তারিখের পার্থক্য গণনা করার কয়েকটি উত্তর এখানেও সহায়তা করতে পারে।
manatwork


@ এমএস 210 আপনি প্রাচীন কোবোল কোডের জন্য কোড ক্লিনার হিসাবে সম্প্রদায়টি পরিবেশন করার সময় আপনাকে আজীবন নিষিদ্ধ এবং 1 মাসের জন্য জেল হয়ে গেছেন।
ychaouche

উত্তর:


14
echo $(( (`date +%s` - `date +%s -d '2014/11/17'`) / 86400 )) days ago

4
এটি লিপ সেকেন্ডে ভুল হয়ে যায়। আমি বলতে চাইছি, এখন এটি খুব কমই গুরুত্বপূর্ণ , তবে 10k বছরে বা তাই জমে থাকা ত্রুটিটি যথেষ্ট পরিমাণে যথেষ্ট হতে পারে।
কেভিন

2
সম্ভাব্যতা লিপ সেকেন্ডগুলি প্রায় .000001% এ ত্রুটি ঘটায়। মামলার 2% ... এই দিন এই পদ্ধতি লোকেল সঙ্গে দেব ভুল সংখ্যক যেখানে দিবালোক সংরক্ষণ সময় পালন করা হয় তুলনায় তুচ্ছ হয়
jlliagre

2
@ কেভিন: যদি তিনি জানতে চান যে তিনি কত দিন কোথাও কাজ করেছেন, আমরা (ক্রায়োজেনাইজেশন বা মেডিসিনে আগাম আগ পর্যন্ত) এই বিষয়ে খুব বেশি বিরক্ত করতে পারি না
Ol

1
@ জেলিয়াগ্রে:% s ইউনিক্স সময়, যা সর্বদা ইউটিসি থাকে, যার ডিএসটি নেই।
কেভিন

1
সম্ভাবনা হ'ল তিনি কাজের জায়গায় তার ডেস্কের পিছনে অলস অবস্থায় কত দিন নিযুক্ত ছিলেন সে সম্পর্কে ভাবছেন। যেহেতু সম্ভবত মধ্যরাতের আশেপাশে নয় তবে কোথাও সকাল ৮ টা থেকে বিকাল ৫ টা পর্যন্ত (এবং date -d 2014/11/17কোনও সময় উল্লেখ না করার কারণে মধ্যরাতের একটি টাইমস্ট্যাম্প দেয়) ডিএসটি কোনও বিষয় নয়।
wurtel

5

ঠিক আছে, এর মুখে:

$ date --date="-239 days"
Mon Nov 17 15:25:40 CET 2014

একটি স্ক্রিপ্টে (খুব দক্ষ নয়, তবে ... সম্ভবত এটি লিপ সেকেন্ড পরিচালনা করে ?;))

i=0
result=""
while [ "$result" != "20141117" ]
do
    i=$((i+1))
    result=$(date --date="-$i days" +%Y%m%d)
done
echo "$i" days have passed since "$result"

এমনকি agoবোঝা যাচ্ছে:date --date="239 days ago"
ডিজিটাল ট্রমা

1
@ ডিজিটালট্রামা খুব খারাপ এটি স্থানীয় নয়। যেমন LC_ALL=ru_RU.utf8 date --date="239 дней назад"আমাকে একই ফলাফল দেয় date --date="239"
রুসলান

@ রাস্লান প্রকৃতপক্ষে :)
ডিজিটাল ট্রমা

1

কমান্ড লাইনে অজগর চেষ্টা করেছিলাম।

$ python -c "import datetime; print datetime.date.today() - datetime.date(2014,11,17)"
246 days, 0:00:00 

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