তারিখ কমান্ড 31 ডিসেম্বর এর জন্য ভুল সপ্তাহ নম্বর দেয়


21

আমি যখন ৩১ শে ডিসেম্বরের জন্য সপ্তাহের সংখ্যাটি পাওয়ার চেষ্টা করি তখন এটি 1 ফিরে আসে 30 আমি যখন 30 ডিসেম্বরের জন্য সপ্তাহের নম্বর পাই তখন আমি 52 পাই --- যা আমি প্রত্যাশা করব expect সোমবার দিনটি সঠিক। এটি উবুন্টু চালিত একটি আরপিআইয়ের উপর।

$ date -d "2018-12-30T1:58:55" +"%V%a"

52Sun

$ date -d "2018-12-31T1:58:55" +"%V%a"

01Mon

সময় স্ট্রিং ছাড়া একই সমস্যা

$ date -d "2018-12-31" +"%V%a"

01Mon

9
"তারিখ কমান্ড 31 ডিসেম্বর এর জন্য ভুল সপ্তাহ নম্বর দেয়" - "ভুল" কোন নির্দিষ্টকরণ অনুসারে? আপনি যে স্পেসিফিকেশনটি ব্যবহার করছেন সেটি কি ম্যানুয়ালটি ব্যবহার করছে dateবলে একই রকম ?
Jörg ডব্লু মিট্টাগ


2
আপনার আগ্রহী হতে পারে কেন মাসিক্যালেন্ডার নিয়ন্ত্রণ রোমানিয়ার ভুল সপ্তাহের সংখ্যা দেখায়? ব্লগ পোস্টটি উইন্ডোজ সম্পর্কে, তবে আলোচিত সমস্যাটি সাধারণ (এবং আপনি যেটির মুখোমুখি হচ্ছেন তা হ'ল)।
একটি সিভিএন

1
"কম্পিউটার অবশ্যই ভুল হতে পারে, কারণ আমি স্পষ্টতই ভুল করি নি!" আমি যখন মনে করিয়েছিলাম যে ফোরট্রান চতুর্থ সংকলকটিতে অবশ্যই একটি বাগ থাকতে হবে , কারণ আমার প্রথম সাধারণ প্রোগ্রামটিতে কোনও ত্রুটি থাকতে পারে না ...
রনজহান

উত্তর:


49

এটি আপনাকে আইএসও সপ্তাহ দিচ্ছে যা সোমবার থেকে শুরু হবে।

আইএসও সপ্তাহের তারিখ সিস্টেমটি কার্যকরভাবে একটি লিপ সপ্তাহের ক্যালেন্ডার সিস্টেম যা ১৯৮৮ সাল থেকে আন্তর্জাতিক সংগঠন (আইএসও) দ্বারা জারি করা আইএসও 8601 তারিখ এবং সময় মানের অংশ, (2004 সালে সর্বশেষ সংশোধিত) এবং এর আগে এটি সংজ্ঞায়িত করা হয়েছিল আইএসও (আর) ২০১ 1971 সাল থেকে এটি ব্যবহার করা হয়েছে (মূলত) আর্থিক বছরগুলিতে সরকারী এবং ব্যবসায়, পাশাপাশি সময় রক্ষণাবেক্ষণে। এটি আগে "শিল্প তারিখ কোডিং" নামে পরিচিত ছিল। সিস্টেমটি গ্রেগরিয়ান ক্যালেন্ডারের শীর্ষে বছরের এক সপ্তাহ নির্দিষ্ট করে বছরের এক সপ্তাহ নির্দিষ্ট করে year


একটি আইএসও সপ্তাহের সংখ্যা নির্ধারণকারী বছর (যাকে আইএসও বছরকে অনানুষ্ঠানিকভাবে বলা হয়) এর 52 বা 53 পুরো সপ্তাহ থাকে। এটি স্বাভাবিক 365 বা 366 দিনের পরিবর্তে 364 বা 371 দিন। অতিরিক্ত সপ্তাহটি কখনও কখনও লিপ সপ্তাহ হিসাবে উল্লেখ করা হয়, যদিও আইএসও 8601 এই শব্দটি ব্যবহার করে না।

সপ্তাহের শুরু সোমবার থেকে। প্রতি সপ্তাহের বছরটি গ্রেগরিয়ান বছর যেখানে বৃহস্পতিবার পড়ে। বছরের প্রথম সপ্তাহে, তাই সর্বদা 4 জানুয়ারী থাকে। আইএসও সপ্তাহের বছরের সংখ্যাটি তাই 1 জানুয়ারীর কাছাকাছি কিছু দিনের জন্য গ্রেগরিয়ান থেকে কিছুটা বিচ্যুত হয়।


আপনি যদি 52/12 হিসাবে সপ্তাহ 52 হিসাবে দেখাতে চান তবে আপনার ব্যবহার করা উচিত %U, যা আইএসও মান ব্যবহার করে না:

$ date -d "2018-12-31T1:58:55" +"%V%a"
01Mon
$ date -d "2018-12-31T1:58:55" +"%U%a"
52Mon

ধন্যবাদ। এটাই আমি খুঁজছিলাম। আমি ক্যাল কমান্ডের সাথে আরও অনেকগুলি সংশ্লেষিত পদ্ধতি ব্যবহার করেছি।
জর্জ শ্যাফার

3

ইউরোপ এবং মার্কিন যুক্তরাষ্ট্রের মধ্যে সপ্তাহের সংখ্যার সংজ্ঞা আলাদা, সম্ভবত আইএসএস বনাম এএনএসআই মানক। এটি রবিবার - শনিবার বা সোমবার - রবিবার হওয়ার এক সপ্তাহের সাথে সম্পর্কিত হতে পারে এবং এটি আবার ইহুদি বনাম খ্রিস্টান সংজ্ঞা সম্পর্কিত প্রভুর দিবসের (বিশ্রামবার বনাম রবিবার) সম্পর্কিত হতে পারে।

ইউরোপের পক্ষে, সপ্তাহের সংখ্যা 1 এ জানুয়ারীর প্রথম বৃহস্পতিবার রয়েছে এবং সুতরাং এতে নতুন বছরের অন্তর্ভুক্ত সর্বনিম্ন 4 দিন (অর্থাৎ সংখ্যাগরিষ্ঠ) থাকে (থু-ফ্রি-শনি-সান) Sun

যাইহোক, এই জাতীয় বছরে যখন সমস্ত (!!) সপ্তাহের সংখ্যাগুলি ইউরোপ এবং মার্কিন যুক্তরাষ্ট্রের মধ্যে +/- 1 আলাদা হয় তখন এটি বহু-জাতীয় সংস্থাগুলিতে সময়সূচী নির্ধারণের সাথে দুর্দান্ত মজা দেয়। :-)

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