গণনার পদ্ধতি

আমার বেলার প্রতিটি সময় নিজস্ব সৌর গণনা থেকে আসে — কোনো তৈরি লাইব্রেরি বা বাইরের সময়সূচি থেকে নয়। এই পাতায় ঠিক কী গণনা করা হয়, কোন কোণ ও কোন নিয়মে, এবং এখনো কী যাচাই করা হয়নি — সবটাই লেখা আছে।

NOAA/Meeus solar · Karachi 18°/18° · Asr: Hanafi ×2, Shafi ×1 · civil day UTC+6 · page built 2026-10-14

সৌর গণনা

সূর্যের অবস্থান NOAA সৌর ক্যালকুলেটরের সমীকরণ অনুসারে গণনা করা হয় — যা Meeus-এর Astronomical Algorithms বইয়ের ২৫তম অধ্যায়ের প্রচলিত নিম্ন-নির্ভুলতা পদগুলো। বাংলাদেশের অক্ষাংশে ও এই দশকের তারিখগুলোতে এর ত্রুটি এক মিনিটের অনেক কম।

লাইব্রেরি ব্যবহার না করার কারণ একটাই: ক্যালিব্রেশন, এই পাতা এবং হোমপেজের জীবন্ত আকাশ — তিনটিরই সূর্যের প্রকৃত উচ্চতা দরকার, আর একটি বন্ধ লাইব্রেরি সেটি দেয় না। সূর্যোদয় ও সূর্যাস্তে জেলার উচ্চতা অনুযায়ী দিগন্তের কোণ সংশোধন করা হয়।

সব হিসাব বাংলাদেশ সময় (UTC+6) ধরে করা হয়। দিন বদলায় স্থানীয় মধ্যরাতে, এবং ডিভাইসের টাইমজোন কখনো পড়া হয় না — বিদেশ থেকে খুললেও সময় বাংলাদেশেরই থাকে।

কোন ওয়াক্ত, কোন সংজ্ঞা

ওয়াক্ত সংজ্ঞা
ফজর সূর্য দিগন্তের ১৮° নিচে (কারাচি কনভেনশন)
সূর্যোদয় দিগন্ত, জেলার উচ্চতা অনুযায়ী সংশোধিত
যোহর প্রকৃত সৌর মধ্যাহ্ন
আসর ছায়ার নিয়ম — নিচে দেখুন
মাগরিব সূর্যাস্ত, জেলার উচ্চতা অনুযায়ী সংশোধিত
এশা সূর্য দিগন্তের ১৮° নিচে
সেহরি শেষ ফজরের সাথে অবিকল সমান — আলাদা করে গণনা করা হয় না

একটি খোলা প্রশ্ন: অনেক প্রকাশিত সময়সূচি যোহরে সৌর মধ্যাহ্নের সাথে ১ মিনিট যোগ করে (যাওয়াল মার্জিন)। আমার বেলা এখনো তা করে না। এটি ফিকহি প্রশ্ন, কোডের সিদ্ধান্ত নয়, এবং এখনো অমীমাংসিত — তাই কিছু ধরে নেওয়ার বদলে এখানে লিখে রাখা হলো।

আসরের ছায়ার নিয়ম

হানাফি: বস্তুর ছায়া বস্তুর দৈর্ঘ্যের দ্বিগুণ হলে, মধ্যাহ্নের ছায়া বাদ দিয়ে। শাফিঈ: এক গুণ হলে।

cot(altitude) = factor + tan(|latitude − declination|)

দুটি মানই প্রতিদিন গণনা করা হয় এবং পাতার ভেতরেই থাকে। মাযহাব সুইচ শুধু কোনটি দেখানো হবে তা বদলায় — কোনো পুনর্গণনা হয় না। এ কারণেই সুইচ চাপলে আসর ছাড়া আর কিছুই বদলাতে পারে না; এটি নিয়মের ব্যাপার, সাবধানতার নয়।

ক্যালিব্রেশন নীতি

ক্যালিব্রেশন মানে গণিত বদলানো নয়। এর মানে একটি নির্দিষ্ট জেলার নির্দিষ্ট ওয়াক্তে মিনিটের একটি অফসেট যোগ করা, যাতে প্রকাশিত সময়সূচির সাথে মেলে। প্রতিটি অফসেট তার নিজের উদ্ধৃত সূত্র ও সংগ্রহের তারিখসহ ফাইলে থাকে; সূত্রহীন কোনো অফসেট গ্রহণ করা হয় না।

±১৫ মিনিটের সীমা: কোনো অফসেটের পরম মান ১৫ মিনিটের বেশি হলে সেটি ±১৫-এ কেটে দেওয়া হয়, ঐ দিনটি clamped চিহ্নিত হয়, এবং বিল্ডে জেলার নাম ধরে একটি সতর্কবার্তা ওঠে।

সীমা কাটা মানে কী: ১৫ মিনিটের বেশি ফারাক সাধারণত গণনার ভুল নয় — সাধারণত জেলার স্থানাঙ্কই ভুল, অথবা সূত্রটি অন্য পদ্ধতিতে তৈরি। তাই আমরা চুপচাপ সূত্রকে অনুসরণ করি না। কেটে দেওয়া হয়, চিহ্নিত করা হয়, এবং কারণটি মানুষ খুঁজে দেখে। একটি চুপচাপ মেনে নেওয়া ২৫ মিনিটের অফসেট মানে ভুল সময় ঠিক সময়ের পোশাক পরে ঘুরছে।

আসরের অফসেট দুই মাযহাবেই সমানভাবে বসে — এটি জেলার ঘড়ি সংশোধন করে, ছায়ার নিয়ম নয়, তাই এটি কোনো এক মাযহাবের পক্ষ নিতে পারে না।

গণনাকৃত বনাম প্রকাশিত

এখনো কোনো জেলা ক্যালিব্রেট করা হয়নি।

packages/data/calibration.json ফাইলে এই মুহূর্তে ০টি সূত্র এবং ০টি এন্ট্রি আছে। তাই প্রকাশিত ৫টি জেলার প্রতিটি সময় সরাসরি সৌর গণনা থেকে আসছে, এবং প্রতিটি দিনের applied.source মান computed — calibrated নয়।

এখানে কোনো তুলনার টেবিল বানানো হয়নি, কারণ তুলনা করার মতো কিছু সংগ্রহ করা হয়নি। বানিয়ে দেখানোর চেয়ে খালি থাকা ভালো।

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

স্থানাঙ্কের অবস্থা — সবচেয়ে দুর্বল জায়গা

এই পাতাটি যদি শুধু ভালো দিকগুলো বলত, তাহলে এটি আস্থার পাতা হতো না। তাই সবচেয়ে দুর্বল জায়গাটি এখানেই:

৬৪টি জেলার স্থানাঙ্ক রিপোজিটরিতে আছে — ২৪টি high এবং ৪০টি low আস্থা-চিহ্নিত।

প্রকাশিত ৫টি জেলার স্থানাঙ্ক স্বাধীন উন্মুক্ত সূত্রের সাথে মিলিয়ে দেখা হয়েছে (OpenStreetMap ও Wikipedia, সংগৃহীত ২৭ আগস্ট ২০২৬), এবং একটি স্বয়ংক্রিয় পরীক্ষা নিশ্চিত করে যে দুই স্থানাঙ্ক থেকে গণনা করা কোনো ওয়াক্তের সময় এক মিনিটের বেশি আলাদা হয় না। বাকি ৫৯টি এখনো যাচাই করা হয়নি।

এটি কোনো সরকারি গেজেটিয়ারের সাথে মিলিয়ে দেখা নয় — উন্মুক্ত সূত্রের সাথে ক্রস-চেক। এবং এটি প্রকাশিত সময়সূচির সাথে ক্যালিব্রেশনও নয়; সেটি এখনো হয়নি, উপরে যেমন লেখা আছে।

সেজন্যই প্রকাশিত জেলা মাত্র ৫টি। বাকি ৫৯টির কোনো পাতা তৈরি হয় না এবং তালিকাতেও দেখানো হয় না। ভুল স্থানাঙ্ক আত্মবিশ্বাসের সাথে ভুল সময় তৈরি করে, আর সেটিই এই পণ্যের সবচেয়ে খারাপ ব্যর্থতা।

একটি স্বয়ংক্রিয় পরীক্ষা পাশাপাশি জেলার স্থানাঙ্কের ধারাবাহিকতা দেখে, কিন্তু সেই পরীক্ষা বৃত্তাকার: কোন জেলা কার পাশে, সেটিই ঐ স্থানাঙ্ক থেকে বের করা হয়। এটি ৩০০ কিলোমিটারের ভুলও ধরতে পারে না। বিভাগের সাথে মিল দেখার আরেকটি পরীক্ষা আছে, সেটি শুধু বড় ধরনের সরে যাওয়া ধরে।

আরও জেলা প্রকাশের আগে একজন নামধারী মানুষকে প্রতিটি সারি উদ্ধৃত সূত্রের সাথে মিলিয়ে দেখতে হবে। সেটি হওয়ার আগে সংখ্যাটি বাড়বে না।

সূত্র

  • সৌর সমীকরণ

    Jean Meeus, Astronomical Algorithms, 2nd ed., ch. 25 (Solar Coordinates)

    সংগৃহীত: মুদ্রিত বই — সংস্করণ ১৯৯৮

  • সৌর সমীকরণ (বাস্তবায়নের রেফারেন্স)

    NOAA Global Monitoring Laboratory — Solar Calculator

    সংগৃহীত: সংগ্রহের তারিখ রেকর্ড করা হয়নি

  • ফজর ও এশার কোণ

    Karachi convention (University of Islamic Sciences, Karachi) — ১৮°/১৮°

    সংগৃহীত: মূল প্রকাশনার উদ্ধৃতি এখনো সংগ্রহ করা হয়নি

  • ডিফারেনশিয়াল পরীক্ষার অরাকল

    adhan-js 4.4.3 — শুধু পরীক্ষায় ব্যবহৃত, কখনো ব্রাউজারে পাঠানো হয় না

    সংগৃহীত: সংস্করণ ৪.৪.৩

  • ক্যালিব্রেশন

    প্রকাশিত সময়সূচির কোনো সূত্র এখনো সংগ্রহ করা হয়নি

    সংগৃহীত: প্রযোজ্য নয়

যেখানে সংগ্রহের তারিখ নেই, সেখানে একটি বিশ্বাসযোগ্য তারিখ বসিয়ে দেওয়ার বদলে ফাঁকটিই লেখা আছে। তারিখগুলো ভরাট করা এই পাতার পরবর্তী কাজ।

যা আমরা দাবি করি না

  • আমার বেলা Islamic Foundation বা অন্য কোনো প্রতিষ্ঠানের সাথে সম্পৃক্ত নয়, কারও অনুমোদিতও নয়। সময়গুলো স্বাধীনভাবে গণনাকৃত।
  • “প্রকাশিত সময়সূচির সাথে যাচাইকৃত” — এই দাবির যাচাইয়ের অংশটি এখনো করা হয়নি। যেদিন হবে, সেদিন এই পাতা ও প্রতিটি পাতার নিচের লাইন নিজে থেকেই তা দেখাবে, সূত্র ও সংগ্রহের তারিখসহ।
  • মসজিদের জামাতের সময় গণনাকৃত ওয়াক্তের সমান নয়। ওয়াক্ত কখন শুরু হয় তা গণনা করা যায়; জামাত কখন হবে সেটি প্রতিটি মসজিদ নিজে ঠিক করে — সাধারণত ওয়াক্ত শুরুর ১০–৩০ মিনিট পরে। আপনার মসজিদের সময়ের সাথে না মিললে তার মানে এই নয় যে কোনোটি ভুল।
  • চাঁদ দেখা কোনো গণনার বিষয় নয়। রমজান ও ঈদের তারিখ ঘোষণার আগ পর্যন্ত আনুমানিক — চাঁদ দেখা সাপেক্ষে হিসেবেই দেখানো হয়।