কেন এক্সেল সপ্তাহের দিনগুলি 1900 এর জন্য ভুল?


27

এই প্রশ্নের পর্যবেক্ষণ উপর ভিত্তি করে তৈরি AdamV মধ্যে তার উত্তর উপর আমি কিভাবে Excel এ কোনো কক্ষের মধ্যে দিন নাম পেতে পারি?

যখন A1 এর মান 2009-08-01 হয়, তারপরে:

  • =WEEKDAY(A1) প্রাপ্ত হবে 7
  • =TEXT(7, "dddd") প্রাপ্ত হবে Saturday
  • =TEXT(7,"dddd, yyyy-mm-dd") প্রাপ্ত হবে Saturday, 1900-01-07
  • =TEXT(1,"dddd, yyyy-mm-dd") প্রাপ্ত হবে Sunday, 1900-01-01
  • =TEXT("1900-01-01","dddd, yyyy-mm-dd") এছাড়াও পাবেন Sunday, 1900-01-01

শেষ দুটি ভুল: 1900 সালের 1 জানুয়ারী আসলে একটি সোমবার।
বিভিন্ন উত্স নিশ্চিত করে বলে মনে হচ্ছে:

আমি কী মিস করছি? এক্সেল কেন এই ভুল করছে?


1
এই প্রশ্নের জন্য ধন্যবাদ আমি আমার পূর্ববর্তী উত্তরটি কিছুটা সংশোধন করে পরিষ্কার করে দিয়েছি যে 1/1/1900 রবিবার নয়, তবে এক্সেল মনে করে যে এটি। ত্রুটিটি পূর্ববর্তী উত্তরের পদার্থকে পরিবর্তন করে না যা হ'ল একটি সপ্তাহের দিন সংখ্যাটি কোনও তারিখের মতো দেখতে ফর্ম্যাট করা পাঠ্য তৈরি করার ভিত্তি হিসাবে ব্যবহার করা ত্রুটিযুক্ত এবং অপ্রয়োজনীয়।
আদমভি 11

উত্তর:


40

মাইক্রোসফ্ট কেবি 214058 তে বর্ণিত হিসাবে :

1 মার্চ, 1900 এর আগের সপ্তাহের দিনগুলি এক্সেলে ভুল

অধিক তথ্য

মাইক্রোসফ্ট এক্সেলে যখন তারিখ সিস্টেমটি মূলত তৈরি হয়েছিল, এটি অন্যান্য স্প্রেডশিট প্রোগ্রামগুলির দ্বারা ব্যবহৃত তারিখ সিস্টেমের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ হওয়ার জন্য ডিজাইন করা হয়েছিল।

যাইহোক, এই তারিখ ব্যবস্থায়, 1900 সালটি লিপ বছর হিসাবে ভুলভাবে ব্যাখ্যা করা হয়েছে। কারণ ১৯৯০ সালে ২৯ শে ফেব্রুয়ারি ("লিপ ডে") নেই, 1 মার্চ, 1900 ("লিপ দিবসের" পরের দিন) এর আগে যে কোনও তারিখের জন্য সপ্তাহের দিনটি সঠিকভাবে গণনা করা হয় না।

"অন্যান্য স্প্রেডশীট প্রোগ্রাম" পড়ুন লোটাস 1-2-3 , যা বেশ জনপ্রিয় ফিরে ছিল, এবং ভুল অধিকৃত যে বছর 1900 একটি লীপ বছর ছিল। এটি আরও বিস্তারিতভাবে কেবি 214326 এ ব্যাখ্যা করা হয়েছে :

এক্সেল 2000 ভুলভাবে ধরে নিয়েছে যে 1900 সালটি একটি লিপ বছর

অধিক তথ্য

লোটাস ১-২-৩ প্রথম প্রকাশিত হওয়ার পরে, প্রোগ্রামটি ধরে নিয়েছিল যে ১৯০০ সালটি একটি লিপ বছর ছিল, যদিও এটি আসলে লিপ বছর ছিল না। এটি প্রোগ্রামটিকে লাফ বছরগুলি পরিচালনা করা সহজ করে তোলে এবং লোটাসের প্রায় সমস্ত তারিখ গণনাগুলিতে 1-2-3- তে কোনও ক্ষতি করে না।

মাইক্রোসফ্ট মাল্টিপ্ল্যান এবং মাইক্রোসফ্ট এক্সেল প্রকাশিত হলে, তারা ধরেও নিয়েছিল যে 1900 একটি লিপ বছর ছিল। এই অনুমানটি মাইক্রোসফ্ট মাল্টিপ্ল্যান এবং মাইক্রোসফ্ট এক্সেলকে একইভাবে লোটাস 1-2-1-3 দ্বারা ব্যবহৃত সিরিয়াল তারিখ সিস্টেম ব্যবহার করার অনুমতি দেয় এবং লোটাসের 1-2-2-3 এর সাথে আরও বেশি সামঞ্জস্যতা সরবরাহ করতে পারে। 1900 কে লিপ ইয়ার হিসাবে চিকিত্সা করা ব্যবহারকারীদের পক্ষে একটি প্রোগ্রাম থেকে অন্য প্রোগ্রামে ওয়ার্কশিটগুলি সরানো সহজ করে তোলে।

যদিও প্রযুক্তিগতভাবে এই আচরণটি সংশোধন করা সম্ভব যাতে মাইক্রোসফ্ট এক্সেলের বর্তমান সংস্করণগুলি ধরে না নেয় যে 1900 একটি লিপ বছর, তবে এটি করার অসুবিধাগুলি সুবিধাগুলি ছাড়িয়ে যায়।

যদি এই আচরণটি সংশোধন করা হয় তবে নিম্নলিখিতগুলি সহ অনেকগুলি সমস্যা দেখা দিতে পারে:

  • বর্তমান মাইক্রোসফ্ট এক্সেলের ওয়ার্কশিট এবং অন্যান্য দস্তাবেজের প্রায় সমস্ত তারিখ একদিন কমে যাবে। এই শিফ্টটি সংশোধন করতে যথেষ্ট সময় এবং প্রচেষ্টা লাগবে, বিশেষত তারিখগুলি ব্যবহার করে এমন সূত্রে।
  • WEEKDAY ফাংশন এর মতো কিছু ফাংশন বিভিন্ন মান দেয়; এর ফলে ওয়ার্কশিটে সূত্রগুলি ভুলভাবে কাজ করতে পারে।
  • এই আচরণটি সংশোধন করা মাইক্রোসফ্ট এক্সেল এবং তারিখগুলি ব্যবহার করে এমন অন্যান্য প্রোগ্রামগুলির মধ্যে সিরিয়াল তারিখের সামঞ্জস্যতাটিকে ভেঙে দেবে।

যদি আচরণটি অবহিত না থেকে থাকে তবে কেবল একটি সমস্যা দেখা দেয়:

  • WEEKDAY ফাংশনটি 1 মার্চ, 1900 এর আগে তারিখগুলির জন্য ভুল মানগুলি দেয়। কারণ বেশিরভাগ ব্যবহারকারীগণ 1 লা মার্চ, 1900 এর আগে তারিখগুলি ব্যবহার করেন না, এই সমস্যাটি বিরল।

10
: এখানে স্ট্যাক এক্সচেঞ্জ এর নিজস্ব জোএল স্পলস্কাই থেকে একটি সম্পর্কিত গল্প joelonsoftware.com/items/2006/06/16.html
অনুজ্জ্বল

5
এছাড়াও দেখুন । অনেক প্রোগ্রামার ভুলভাবে ধরে
নিয়েছেন

3
.তিহাসিক নিটপিক: আপনি যখন বলছেন যে 1-2-23 "বেশ জনপ্রিয়" তখন আপনি বোঝাতে চেয়েছিলেন এটি একবার প্রভাবশালী স্প্রেডশিট ছিল।
আইজাক রবিনোভিচ

12

এখানে জোয়েল নিজে ব্যাখ্যা করেছেন কারণ: আমার প্রথম বিলজি পর্যালোচনা

বুনিয়াদি 1 জানুয়ারী, 1900 এর পরিবর্তে 31 ডিসেম্বর, 1899টিকে পর্ব হিসাবে ব্যবহার করে, তবে কিছু কারণে, আজকের তারিখটি এক্সেলে যেমন ছিল বেসিকের মতোই।

তাই না?

আমি একজন এক্সেল বিকাশকারীকে খুঁজতে গিয়েছিলাম, কেন এটির জন্য যথেষ্ট বয়স্ক old এড ফ্রাইস উত্তরটি দেখে মনে হয়েছিল।

"ওহ," সে আমাকে বলেছিল। "28 শে ফেব্রুয়ারী, 1900 দেখুন" "

"এটা 59," আমি বলেছিলাম।

"এখন 1 লা মার্চ চেষ্টা করুন।"

"এটা 61!"

"60 এর কি হয়েছে?" এড জিজ্ঞাসা করলেন।

"29 শে ফেব্রুয়ারী। 1900 একটি লিপ বছর ছিল! এটি 4 দ্বারা বিভাজ্য!"

"ভাল অনুমান, তবে সিগার নেই," এড বললেন এবং আমাকে কিছুক্ষণের জন্য ভাবতে রেখে গেলেন।

উফ। কিছু গবেষণা করেছি। যে বছরগুলি 100 দ্বারা বিভাজ্য হয় সেগুলি লীপ বছর হয় না, যদি না সেগুলি 400 দ্বারা বিভাজ্যও হয়।

1900 একটি লিপ বছর ছিল না।

"এটি এক্সলে একটি বাগ!" আমি উদ্বিগ্ন।

"ঠিক আছে, সত্যিই নয়," এড বলেছেন। "আমাদের সেভাবেই করতে হয়েছিল কারণ আমাদের লোটাস 123 কার্যপত্রক আমদানি করতে সক্ষম হওয়া দরকার।"

"তো, এটি লোটাস 123 এ একটি বাগ?"

"হ্যাঁ, তবে সম্ভবত একটি উদ্দেশ্যমূলক Lot লোটাসকে 40৪০ কেতে ফিট করতে হয়েছিল That's এটি অনেক বেশি স্মৃতি নয় 19 আপনি যদি ১৯০০কে উপেক্ষা করেন তবে ঠিক যে দুটি বিট রয়েছে তা দেখার জন্য আপনি প্রদত্ত বছরটি একটি লিপ বছর কিনা তা বুঝতে পারবেন you শূন্য, এটি সত্যিই দ্রুত এবং সহজ। লোটাস ছেলেরা সম্ভবত বুঝতে পেরেছিল যে অতীতের এই দুই মাসের পথে ভুল হওয়া উচিত নয়।


1
@ জিরোয়ানওয়েটপ্লাইমারস: আসলে এই লিঙ্কটির সাথে আমার উত্তরটি মডারেটর দ্বারা মুছে ফেলা হয়েছিল এবং আমি আমার উত্তরটি প্রসারিত করার সিদ্ধান্ত নিয়েছি।
জিওরগি

2

এর একটি সমাধান হ'ল বছরে 400 বছর যুক্ত করা, নীচের সূত্র = উইকডে (তারিখ (এ 4 + 400, বি 4, সি 4), 1) হিসাবে সপ্তাহের দিনটি কাজ করা তাই যদি A4 = 1834 বি 4 = 12 সি 4 = 14 এটি 1 (রবিবার) ফিরে আসবে যা 14 ডিসেম্বর 2234 এর সমান, এটি গ্রেগরিয়ান ক্যালেন্ডারে পরিবর্তনের বছর পরে 1753 এর আগে তারিখের জন্য কাজ করা বন্ধ করে দেয়

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