সূর্য সিদ্ধান্ত পঞ্জিকা সকল প্রবন্ধ

ঐতিহাসিক পঞ্জিকায় জুলিয়ান ও গ্রেগরিয়ান দ্বৈত তারিখ কেন

১৫৮২ ও ১৭৫২ সালের ক্যালেন্ডার পরিবর্তন, প্রোলেপটিক গ্রেগরিয়ান তারিখ, Julian Day এবং বাংলা ঐতিহাসিক পঞ্জিকায় দ্বৈত তারিখ দেখানোর কারণ ও সফটওয়্যার-পদ্ধতি।

ঐতিহাসিক পঞ্জিকা নিয়ে কাজ করার সময় একটি গুরুত্বপূর্ণ সত্য মনে রাখতে হয়: তারিখ এবং দিন এক জিনিস নয়। দিন হলো সময়ের ধারাবাহিক একটি বাস্তব পরিসর; তারিখ হলো সেই দিনকে কোনো নির্দিষ্ট ক্যালেন্ডারের নিয়মে দেওয়া নাম। তাই একই সূর্যোদয় বা সংক্রান্তিকে জুলিয়ান ক্যালেন্ডারে একটি তারিখ এবং গ্রেগরিয়ান ক্যালেন্ডারে অন্য তারিখে লেখা যায়।

এক দিনকে দুই তারিখে লেখা যায় কীভাবে?

ধরা যাক, একটি নির্দিষ্ট astronomical instant বা জ্যোতির্বৈজ্ঞানিক মুহূর্ত অপরিবর্তিত আছে। সেই মুহূর্তকে ঘড়ির সময় ও ক্যালেন্ডার-তারিখে প্রকাশ করার সময় তিনটি আলাদা রূপান্তর ঘটে:

  1. মুহূর্তটি নির্বাচিত স্থানের timezone-এ রূপান্তর করা হয়;
  2. স্থানীয় দিনের বছর, মাস ও দিন নির্ধারণ করা হয়;
  3. তারিখের সংখ্যাগুলো জুলিয়ান, গ্রেগরিয়ান বা অন্য কোনো calendar system-এর নিয়মে লেখা হয়।

শেষ ধাপটি বদলালেও মূল মুহূর্ত বদলে যায় না। একই দিনের weekday-ও বদলায় না। যেমন একই বাস্তব শনিবারকে জুলিয়ান পদ্ধতিতে ২০ মার্চ এবং প্রোলেপটিক গ্রেগরিয়ান পদ্ধতিতে ২২ মার্চ লেখা যেতে পারে।

জুলিয়ান ও গ্রেগরিয়ান ক্যালেন্ডারের মূল পার্থক্য

জুলিয়ান ক্যালেন্ডারে প্রতি চার বছর অন্তর একটি অধিবর্ষ ধরা হয়। ফলে এর গড় বর্ষদৈর্ঘ্য:

গ্রেগরিয়ান ক্যালেন্ডারেও সাধারণভাবে চার দ্বারা বিভাজ্য বছর অধিবর্ষ; কিন্তু শতাব্দী বছরগুলো অধিবর্ষ নয়, যদি না বছরটি ৪০০ দ্বারা বিভাজ্য হয়। তাই ১৬০০ ও ২০০০ অধিবর্ষ, কিন্তু ১৭০০, ১৮০০ ও ১৯০০ অধিবর্ষ নয়। এর গড় বর্ষদৈর্ঘ্য:

এই ছোট পার্থক্য শতাব্দীর পর শতাব্দী জমে জুলিয়ান ক্যালেন্ডারের ঋতুভিত্তিক অবস্থানকে সরিয়ে দেয়। গ্রেগরিয়ান সংস্কারের উদ্দেশ্য ছিল তারিখের সঙ্গে ঋতুচক্রের এই সঞ্চিত ব্যবধান সংশোধন করা এবং ভবিষ্যতের drift কমানো।

১৫৮২ সালে কী ঘটেছিল?

গ্রেগরিয়ান সংস্কার প্রথম গ্রহণকারী দেশগুলোতে জুলিয়ান ক্যালেন্ডারের বৃহস্পতিবার ৪ অক্টোবর ১৫৮২-এর পরের বাস্তব দিনকে শুক্রবার ১৫ অক্টোবর ১৫৮২ বলা হয়। ৫ অক্টোবর থেকে ১৪ অক্টোবর—এই দশটি nominal date ব্যবহার করা হয়নি।

এখানে দশটি বাস্তব দিন মুছে যায়নি। ৪ অক্টোবরের সূর্যাস্তের পর স্বাভাবিকভাবেই রাত এসেছে এবং পরের সকাল হয়েছে। শুধু পরের দিনের calendar label ৫ অক্টোবর না হয়ে ১৫ অক্টোবর হয়েছে। সেই কারণে weekday বৃহস্পতিবার থেকে স্বাভাবিক নিয়মে শুক্রবার হয়েছে।

ব্রিটিশ পরিবর্তন: ১৭৫২ সালে ১১ দিনের ব্যবধান

সব দেশ ১৫৮২ সালে নতুন ক্যালেন্ডার গ্রহণ করেনি। ব্রিটিশ সাম্রাজ্যে Calendar (New Style) Act অনুযায়ী বুধবার ২ সেপ্টেম্বর ১৭৫২-এর পরের দিনকে বৃহস্পতিবার ১৪ সেপ্টেম্বর ১৭৫২ বলা হয়। ৩ সেপ্টেম্বর থেকে ১৩ সেপ্টেম্বর—১১টি nominal date বাদ পড়ে।

১৫৮২ সালে ব্যবধান ছিল ১০ দিন, কিন্তু ১৭৫২ সালে ১১ দিন হওয়ার কারণ হলো ১৭০০ সাল। জুলিয়ান নিয়মে ১৭০০ অধিবর্ষ ছিল; গ্রেগরিয়ান নিয়মে এটি ৪০০ দ্বারা বিভাজ্য না হওয়ায় সাধারণ বছর। ফলে দুই ক্যালেন্ডারের ব্যবধান আরও এক দিন বেড়ে যায়।

একই বাস্তব দিনের রূপান্তর হিসেবে ৩ সেপ্টেম্বর ১৭৫২ Julian-এর সমতুল্য ১৪ সেপ্টেম্বর ১৭৫২ Gregorian। কিন্তু ব্রিটিশ ঐতিহাসিক civil calendar-এ ৩ সেপ্টেম্বর তারিখটি ব্যবহৃত হয়নি—কারণ ২ সেপ্টেম্বরের পর সরাসরি ১৪ সেপ্টেম্বর লেখা হয়েছিল।

সব দেশে কি একই দিনে পরিবর্তন হয়েছিল?

না। বিভিন্ন দেশ ও অঞ্চল বিভিন্ন সময়ে গ্রেগরিয়ান ক্যালেন্ডার গ্রহণ করেছে। তাই “ঐতিহাসিকভাবে ব্যবহৃত তারিখ” নির্ণয়ে শুধু সাল জানলেই যথেষ্ট নয়; সংশ্লিষ্ট অঞ্চল ও প্রশাসনিক প্রথাও জানতে হয়।

এই কারণে ১৬৫০ সালের একটি দলিলে লেখা তারিখ কোন calendar system-এ ছিল, তা দেশভেদে আলাদা হতে পারে। আবার আধুনিক গবেষণা-ডেটাবেস একই ঘটনাকে তুলনার সুবিধার জন্য প্রোলেপটিক গ্রেগরিয়ান তারিখে পুনর্লিখতে পারে। দুটিই প্রয়োজনীয়, কিন্তু তাদের পরিচয় স্পষ্টভাবে লেখা উচিত।

প্রোলেপটিক গ্রেগরিয়ান ক্যালেন্ডার কী?

গ্রেগরিয়ান ক্যালেন্ডারের বর্তমান অধিবর্ষ-নিয়মকে ১৫৮২ সালের আগের বছরগুলোর ওপর গণিতের সাহায্যে পেছনের দিকে প্রয়োগ করলে তাকে proleptic Gregorian calendar বলা হয়।

উদাহরণ হিসেবে ৫৯৪ খ্রিস্টাব্দে কোনো অঞ্চলে গ্রেগরিয়ান ক্যালেন্ডার ব্যবহৃত হয়নি। তবু আধুনিক সফটওয়্যার ৫৯৪ সালের একটি Julian Day-কে গ্রেগরিয়ান নিয়মে বছর-মাস-দিনে রূপান্তর করতে পারে। সেই তারিখটি আধুনিক তুলনার জন্য উপযোগী, কিন্তু তাকে “তৎকালীন ঐতিহাসিকভাবে ব্যবহৃত গ্রেগরিয়ান তারিখ” বলা যাবে না।

লেবেল অর্থ ব্যবহার
Julian / Old Style জুলিয়ান ক্যালেন্ডারের নিয়মে লেখা তারিখ প্রাচীন ও অনেক আঞ্চলিক ঐতিহাসিক নথির সঙ্গে তুলনা
Historical Gregorian / New Style কোনো অঞ্চলে গ্রহণের পর ব্যবহৃত গ্রেগরিয়ান তারিখ আঞ্চলিক প্রশাসনিক ইতিহাস
Proleptic Gregorian গ্রেগরিয়ান নিয়মকে গ্রহণের আগের যুগে পেছনের দিকে সম্প্রসারণ আধুনিক সফটওয়্যার, গবেষণা ও ধারাবাহিক তুলনা

Julian Day কেন নিরাপদ মধ্যবর্তী ভিত্তি?

Julian Day বা JD কোনো মাসের ক্যালেন্ডার নয়। এটি দিন ও দিনের ভগ্নাংশের একটি ধারাবাহিক জ্যোতির্বৈজ্ঞানিক গণনা। প্রচলিত JD-এর দিন গণনা মধ্যাহ্নভিত্তিক হওয়ায় civil midnight-এর সঙ্গে ব্যবহার করার সময় ০.৫ দিনের offset বুঝতে হয়।

ক্যালেন্ডার পরিবর্তনের সময় date label লাফ দিলেও JD ধারাবাহিক থাকে। U.S. Naval Observatory-এর উদাহরণে:

  • ৪ অক্টোবর ১৫৮২ Julian শুরু হয় JD 2299159.5-এ;
  • তার পরের দিন ১৫ অক্টোবর ১৫৮২ Gregorian শুরু হয় JD 2299160.5-এ।

দুই মানের পার্থক্য ঠিক এক দিন। অর্থাৎ ক্যালেন্ডারে দশটি তারিখ-লেবেলের gap থাকলেও astronomical day count-এ কোনো gap নেই।

বাংলা সন ১-এর গবেষণা-উদাহরণ

আমাদের ঐতিহাসিক বাংলা পঞ্জিকা প্রকল্পে ব্যবহৃত গবেষণা-নির্বাচিত মেষ সংক্রান্তির সূচনাবিন্দু:

এই JD একটি নির্দিষ্ট মুহূর্ত নির্দেশ করে। দক্ষিণ এশীয় স্থানীয় সময়ে রূপান্তরের পরে একই স্থানীয় দিনকে জুলিয়ান ক্যালেন্ডারে শনিবার, ২০ মার্চ ৫৯৪ এবং প্রোলেপটিক গ্রেগরিয়ান ক্যালেন্ডারে শনিবার, ২২ মার্চ ৫৯৪ হিসেবে লেখা যায়।

দুই তারিখের weekday শনিবারই থাকে, কারণ এটি একই বাস্তব দিন। পার্থক্য শুধু ক্যালেন্ডারের year-month-day label-এ। স্থানীয় দ্রাঘিমা বা timezone বদলালে সুনির্দিষ্ট সংক্রান্তির local clock date-ও বদলাতে পারে; তাই ঐতিহাসিক প্রতিবেদনে স্থান অবশ্যই উল্লেখ করা উচিত।

দুই ক্যালেন্ডারের ব্যবধান কেন বদলায়?

শতাব্দী বছরগুলোর অধিবর্ষ-নিয়ম আলাদা হওয়ায় Julian–Gregorian ব্যবধান স্থির নয়। একই দিনের Gregorian label সাধারণত Julian label-এর চেয়ে পরে সংখ্যায় পড়ে। নির্বাচিত কয়েকটি সময়ে ব্যবধান:

সময়সীমা বা উদাহরণ ব্যবধান একই দিনের উদাহরণ
৫৯৪ খ্রিস্টাব্দ ২ দিন ২০ মার্চ Julian = ২২ মার্চ proleptic Gregorian
১৫৮২ সালের সংস্কারকাল ১০ দিন ৫ অক্টোবর Julian = ১৫ অক্টোবর Gregorian
১৭০০ সালের মার্চ থেকে ১১ দিন ৩ সেপ্টেম্বর ১৭৫২ Julian = ১৪ সেপ্টেম্বর Gregorian
১৮০০ সালের মার্চ থেকে ১২ দিন তারিখভেদে ১২ দিনের label difference
১৯০০ সালের মার্চ থেকে ২০৯৯ সালের ফেব্রুয়ারি পর্যন্ত ১৩ দিন আধুনিক Julian ও Gregorian তুলনায় প্রচলিত ব্যবধান

সফটওয়্যারে ক্যালেন্ডার পরিবর্তন কীভাবে নিরাপদে সামলাতে হবে?

ঐতিহাসিক পঞ্জিকা নির্মাণে সবচেয়ে নিরাপদ নকশা হলো astronomical day এবং display calendar-কে আলাদা রাখা:

  1. সংক্রান্তি, সূর্যোদয় ও অন্যান্য ঘটনা JD বা সমমানের ধারাবাহিক instant হিসেবে সংরক্ষণ;
  2. প্রতিটি পরবর্তী পঞ্জিকা-দিনে JD এক দিন করে অগ্রসর করা;
  3. স্থানীয় timezone প্রয়োগ করে local instant তৈরি করা;
  4. একই local instant থেকে Julian এবং proleptic Gregorian label আলাদাভাবে তৈরি করা;
  5. ঐতিহাসিক regional cutover দেখাতে হলে দেশ বা অঞ্চলের cutover policy আলাদা metadata হিসেবে রাখা;
  6. মাসের দৈর্ঘ্য বা বাংলা দিনসংখ্যা Gregorian label-এর jump দেখে পরিবর্তন না করা।

এই বিচ্ছিন্ন নকশা ১৫৮২–১৫৮৩ সালের মতো সময়ে বিশেষ গুরুত্বপূর্ণ। যদি সফটওয়্যার ৪ অক্টোবরের পর সরাসরি calendar date ১৫ অক্টোবর করে এবং তারপর সেই label difference-কে বাস্তব ১১ দিন মনে করে, তাহলে বাংলা মাসের দৈর্ঘ্য ভুলভাবে ২৭ দিনের কম বা ৩৫ দিনের বেশি দেখা দিতে পারে।

.NET DateTime সম্পর্কে সতর্কতা

.NET-এর সাধারণ DateTime ব্যবহার করলে পুরোনো তারিখগুলো সাধারণত proleptic Gregorian label হিসেবে আচরণ করতে পারে। উদাহরণস্বরূপ, কোডে ১০ অক্টোবর ১৫৮২ তৈরি করা সম্ভব, যদিও প্রথম গ্রেগরিয়ান গ্রহণকারী দেশগুলোর ঐতিহাসিক civil calendar-এ সেই nominal date ব্যবহৃত হয়নি।

তাই DateTime-কে নিজে থেকেই “ঐতিহাসিকভাবে ব্যবহৃত ক্যালেন্ডার” মনে না করে, অভ্যন্তরীণ astronomical instant এবং প্রকাশ্য calendar label আলাদা রাখা উচিত। প্রয়োজনে JulianCalendar অথবা নিজস্ব JD conversion layer ব্যবহার করা যায়।

আমাদের ঐতিহাসিক ফাইলে প্রকাশনীতি

সাধারণ আধুনিক ব্যবহারকারীর কাছে Gregorian date সবচেয়ে পরিচিত। অন্যদিকে পুরোনো পঞ্জিকা, শিলালিপি, দলিল বা জ্যোতির্বৈজ্ঞানিক সারণির সঙ্গে তুলনার জন্য Julian date অপরিহার্য হতে পারে। তাই আমাদের ঐতিহাসিক বাংলা পঞ্জিকা ফাইলে নিম্নলিখিত নীতি গ্রহণ করা যুক্তিসঙ্গত:

  • প্রাচীন ও সংস্কার-পূর্ব সময়ে Julian এবং proleptic Gregorian—দুটি label দেখানো;
  • প্রতিটি কলামের শিরোনামে calendar system স্পষ্টভাবে লেখা;
  • Julian Day বা internal date identifier গবেষণা trace-এ রাখা;
  • weekday একই ঘটনার ভিত্তিতে একবার নির্ধারণ করা;
  • দেশভিত্তিক ঐতিহাসিক adoption দাবি করলে সংশ্লিষ্ট regional rule উল্লেখ করা;
  • আধুনিক Gregorian label-কে তৎকালীন ব্যবহৃত ঐতিহাসিক তারিখ হিসেবে উপস্থাপন না করা।

প্রস্তাবিত প্রকাশরূপ:

উপসংহার

জুলিয়ান ও গ্রেগরিয়ান দ্বৈত তারিখ দেখানো কোনো অপ্রয়োজনীয় পুনরাবৃত্তি নয়। এটি ঐতিহাসিক সত্যতা এবং আধুনিক পাঠযোগ্যতার মধ্যে একটি স্বচ্ছ সেতু। Julian label পুরোনো উৎসের সঙ্গে যোগাযোগ রাখে; proleptic Gregorian label আধুনিক ব্যবহারকারীকে পরিচিত সময়রেখায় ঘটনাটি বুঝতে সাহায্য করে; আর Julian Day নিশ্চিত করে যে মূল astronomical instant অপরিবর্তিত আছে।

১৫৮২ বা ১৭৫২ সালের পরিবর্তনে আকাশের কোনো দিন হারায়নি। সূর্য যথারীতি উদিত হয়েছে, weekday ধারাবাহিক থেকেছে এবং জ্যোতির্বৈজ্ঞানিক সময় এগিয়েছে। পরিবর্তিত হয়েছে মানুষের ব্যবহৃত তারিখের নাম। ঐতিহাসিক পঞ্জিকা সফটওয়্যারের কাজ হলো এই দুই স্তরকে মিশিয়ে না ফেলে পাশাপাশি পরিষ্কারভাবে দেখানো।

তথ্যসূত্র ও আরও পাঠ

  1. U.S. Naval Observatory—Julian Date Converter; ১৫৮২ সালের ধারাবাহিক JD ও calendar gap-এর উদাহরণ।
  2. U.S. Naval Observatory—Introduction to Calendars.
  3. Calendar (New Style) Act 1750; ব্রিটিশ ১৭৫২ সংস্কারের মূল আইন।
  4. Oracle Java GregorianCalendar documentation; ৪ অক্টোবর থেকে ১৫ অক্টোবর ১৫৮২ cutover-এর সফটওয়্যার উদাহরণ।
  5. সূর্য সিদ্ধান্ত পঞ্জিকা প্রকল্পের HistoricalCalendarDisplay, Julian Day conversion এবং বাংলা সন ১ গবেষণা-নোট।

মন্তব্য, আলোচনা ও প্রশ্ন