দিনের শ্লোক প্রথা
এই পৃষ্ঠায় নির্দিষ্ট করা হয়েছে কীভাবে verse-of-the-day ডেটাসেট থেকে দিনের আয়াতটি নির্বাচন করতে হয়, যাতে আপনি যেকোনো ভাষায় এটি প্রয়োগ করতে পারেন এবং অন্য সব প্রয়োগের মতোই একই আয়াত পেতে পারেন।
এপিআইটি স্ট্যাটিক ফাইল দিয়ে তৈরি, তাই এটি আপনার জন্য কোনো আয়াত বেছে নেয় না। প্রচলিত নিয়মটি হলো একটি সাধারণ ডিফল্ট: যে অ্যাপগুলো এটি অনুসরণ করে, তারা একই দিনে একই আয়াত দেখায়। অ্যাপগুলো চাইলে ভিন্নভাবে বেছে নিতে পারে, এবং সিডটি তাদের একই নিশ্চয়তা বজায় রেখে তা করার একটি সহজ উপায় দেয়।
গ্যারান্টি
- সুনিশ্চিত। একই তারিখ (এবং সিড) প্রতিটি ডিভাইসে এবং প্রতিটি বাস্তবায়নে সর্বদা একই শ্লোক প্রদান করে।
- এক বছরের মধ্যে কোনো পুনরাবৃত্তি হয় না। প্রতি বছরের শ্লোকগুলোর নিজস্ব এলোমেলো ক্রম থাকে এবং বছরের দিনগুলো সেই ক্রমেই আবর্তিত হয়। ডেটাসেটটিতে ব্যবহৃত প্রতিটি দিনের জন্য সর্বদা কমপক্ষে ৩৬৬টি শ্লোক থাকে, তাই একই পঞ্জিকা বর্ষে কোনো শ্লোক কখনোই দুবার আসে না।
- ছুটির দিন। কোনো খ্রিস্টীয় ছুটির দিনে (যেমন বড়দিন বা পুনরুত্থান রবিবার), সেই দিনের শ্লোকটি হয় ছুটির দিনটিরই কোনো একটি শ্লোক। একটি ছুটির দিনের শ্লোকগুলো বছরে একটি করে ব্যবহৃত হয়, তাই এর সমস্ত শ্লোক ব্যবহৃত না হওয়া পর্যন্ত প্রতি বছর একটি ভিন্ন শ্লোক থাকে। যে ছুটি বেশ কয়েক দিন ধরে চলে (যেমন পুনরুত্থান রবিবারের পরের তিন দিন), তার প্রতিটি দিনে একটি ভিন্ন শ্লোক থাকে। ছুটির দিনের শ্লোকগুলো অন্য কোনো দিনে ব্যবহার করা হয় না।
- প্রতি বছর একটি নতুন ক্রম। প্রতিটি শ্লোক ব্যবহৃত হয়ে গেলে ক্রমটির আর পুনরাবৃত্তি হয় না। যেহেতু প্রতি বছর আলাদাভাবে এলোমেলো করা হয়, তাই একই শ্লোক মাঝে মাঝে ৩১শে ডিসেম্বর এবং আবার ১লা জানুয়ারিতেও দেখা যেতে পারে (প্রায় প্রতি ৬৫০টি নববর্ষে ১ বার)।
- স্থিতিশীল ইতিহাস। ডেটাসেটটি শুধুমাত্র এমন বছরের আয়াত যোগ বা অপসারণ করে যা এখনও শুরু হয়নি (
addedInএবংremovedInদেখুন), তাই যে তারিখটি ইতিমধ্যে এসে গেছে, তার দিনের আয়াত কখনও পরিবর্তিত হয় না। - তালিকার ক্রমের ওপর নির্ভরশীল নয়। একটি বর্ষের ক্রমে প্রতিটি শ্লোকের স্থান তার নিজস্ব উৎস থেকে নির্ধারিত হয়, তাই তালিকার ক্রম কোনো বিষয় নয়।
ইনপুট
| ইনপুট | বর্ণনা |
|---|---|
| শ্লোক | /api/d/verse-of-the-day/verses.json থেকে verses অ্যারে। প্রতিটি শ্লোকে book , chapter , verse ও categories আছে এবং endVerse , addedIn ও removedIn থাকতে পারে। |
| তারিখ | ক্যালেন্ডারের তারিখ (বছর, মাস এবং দিন)। 'আজকের' জন্য, UTC তারিখ নয়, ব্যবহারকারীর স্থানীয় তারিখ ব্যবহার করুন। |
| বীজ | ঐচ্ছিক। একটি স্ট্রিং যা ভিন্ন ক্রম নির্বাচন করে। ডিফল্টরূপে এটি একটি খালি স্ট্রিং থাকে, যা দিনের প্রমিত শ্লোকটি প্রদান করে। |
| ছুটির দিন | একই ফাইলের holidays অ্যারে। প্রতিটি ছুটির দিনে তার বিভাগের id থাকে, এবং হয় একটি month ও day (যে ছুটি প্রতি বছর একই তারিখে পড়ে) অথবা dates এর একটি তালিকা (ক্রমানুসারে YYYY-MM-DD ) থাকে এমন ছুটির জন্য যার তারিখ প্রতি বছর পরিবর্তিত হয়। যদি কোনো ছুটি বেশ কয়েক দিন স্থায়ী হয়, তবে সেটি একই বছরের একাধিক তারিখ তালিকাভুক্ত করতে পারে। |
| বিভাগ | ঐচ্ছিক। যেকোনো দিনে, শুধুমাত্র সেই শ্লোকগুলো থেকে বেছে নিন যেগুলোর categories তে এই বিভাগটি রয়েছে। |
অ্যালগরিদম
ধাপ ১: বছর এবং বছরের দিনটি খুঁজে বের করুন।
তারিখের বছর, মাস ও দিন এবং ০ থেকে গণনা করে সেই তারিখের বছরের দিনটি নিন: ১লা জানুয়ারি হলো দিন ০, ৩১শে ডিসেম্বর হলো দিন ৩৬৪ (অথবা অধিবর্ষে দিন ৩৬৫)।
তারিখের ক্ষেত্রে প্রলেপটিক গ্রেগরিয়ান ক্যালেন্ডার ব্যবহার করা হয়: কোনো বছরকে অধিবর্ষ বলা হয় যদি তা ৪ দ্বারা বিভাজ্য হয়, তবে ১০০ দ্বারা বিভাজ্য কিন্তু ৪০০ দ্বারা বিভাজ্য নয় এমন বছরগুলো এর ব্যতিক্রম (২০০০ সাল একটি অধিবর্ষ, ১৯০০ সাল নয়)।
ধাপ ২: যে পদগুলো ব্যবহৃত হচ্ছে সেগুলো রাখুন।
বছরজুড়ে ব্যবহৃত পদগুলো রাখুন:
addedInঅনুপস্থিত (বা নাল), অথবাaddedIn <= year, এবংremovedInঅনুপস্থিত (বা নাল), অথবাyear < removedIn।
ধাপ ৩: বাছাই করার জন্য শ্লোকগুলো বেছে নিন
বাছাই করার জন্য শ্লোকগুলো, ধাপ ৪-এর জন্য একটি মূল উপসর্গ, এবং ধাপ ৭-এর জন্য একটি অবস্থান নির্বাচন করুন:
- একটি বিভাগ দেওয়া হয়েছিল। যে শ্লোকগুলোর
categoriesতে এটি রয়েছে, সেগুলোকে ব্যবহারে রাখুন। উপসর্গটি হলো{seed}|{year}এবং অবস্থানটি হলো বছরের দিন। - কোনো বিভাগ দেওয়া হয়নি, এবং তারিখটি একটি ছুটির দিন। তারিখটি একটি ছুটির দিন হবে যদি
holidays-তে থাকা কোনো ছুটির দিনে তারিখটিরmonthএবংdayথাকে, অথবা এরdatesএ তারিখটি তালিকাভুক্ত থাকে (যাYYYY-MM-DDহিসাবে লেখা হয়, একটি চার-অঙ্কের বছর সহ)। যদি একাধিক ছুটির দিন মিলে যায়, তাহলে তালিকার প্রথমটি ব্যবহার করুন (ডেটা সেটে একই তারিখে দুটি ছুটির দিন থাকে না)। ব্যবহৃত সেই শ্লোকগুলো রাখুন যাদেরcategoriesছুটির দিনটিরidরয়েছে। যদি এমন কোনো শ্লোক থাকে, তাহলে উপসর্গটি হবে{seed}|{id}(উদাহরণস্বরূপ|christmas) এবং অবস্থানটি হবেyear × k + i, যেখানেkহলো বছরে ছুটির দিনটি পালিত হওয়ার দিনের সংখ্যা (যে ছুটির দিনেmonthএবংdayআছে তার জন্য ১; অন্যথায় তারিখের বছরে এরdatesএর সংখ্যা) এবংiহলো সেই দিনগুলোর সংখ্যা যা তারিখটির আগে আসে। যে ছুটির দিন বছরে একদিন পালিত হয়, তার জন্য অবস্থানটি শুধু বছর হবে। যদি এমন কোনো শ্লোক না থাকে, তাহলে ৩ থেকে শুরু করুন। - অন্যথায়, সেই শ্লোকগুলি ব্যবহারে রাখুন যাদের
categoriesতেholidaysএর কোনো ছুটির দিনেরidনেই। উপসর্গটি হলো{seed}|{year}এবং অবস্থানটি হলো বছরের দিন।
seed হলো সিড (যা ডিফল্টভাবে একটি খালি স্ট্রিং), এবং year হলো প্রথম ধাপ থেকে প্রাপ্ত বছর, যা দশমিক পদ্ধতিতে সামনে কোনো শূন্য ছাড়া প্রকাশ করা হয় (যেমন 2026 , 1 )।
যদি কোনো আয়াত অবশিষ্ট না থাকে, তবে দিনের আয়াত নেই।
যেসব ছুটির তারিখ প্রতি বছর পরিবর্তিত হয়, সেগুলোতে শুধুমাত্র পূর্ব-গণনাকৃত তারিখগুলোই তালিকাভুক্ত করা হয় (বর্তমানে ২০২৬ থেকে ২১২৫), তাই অন্যান্য বছরগুলোতে সেগুলো সাধারণ দিন হিসেবে গণ্য হয়। নিজে থেকে তারিখ গণনা করবেন না।
ধাপ ৪: প্রতিটি পদের মূলভাব তৈরি করুন
বাকি প্রতিটি শ্লোকের জন্য এই স্ট্রিংটি তৈরি করুন:
{prefix}|{book} {chapter}:{verse}prefixহলো ধাপ ৩ থেকে প্রাপ্ত উপসর্গ।bookহলো শ্লোকটিরbook, যা ডেটাসেটে ঠিক যেমনটি আছে (একটি বড় হাতের USFM বই আইডি, যেমনJHNবা1JN)।chapterএবংverseহলো দশমিক সংখ্যা, যেখানে শুরুতে কোনো শূন্য থাকে না।endVerseমূল চাবিকাঠির অংশ নয়। একটি অনুচ্ছেদ তার প্রথম শ্লোক দ্বারা চিহ্নিত করা হয়।
উদাহরণস্বরূপ, ডিফল্ট সিড ব্যবহার করে ২০২৬ সালের একটি সাধারণ দিনে যোহন ৩:১৬-এর কী হলো |2026|JHN 3:16 , এবং বড়দিনে লূক ২:৭-এর কী হলো |christmas|LUK 2:7 ।
ধাপ ৫: প্রতিটি কী হ্যাশ করুন
কী-এর UTF-8 বাইটগুলোকে ৩২-বিট FNV-1a হ্যাশ দিয়ে হ্যাশ করুন, তারপর ফলাফলটিকে MurmurHash3 fmix32 ফাইনাইজারের সাথে মিক্স করুন। সমস্ত গাণিতিক হিসাব আনসাইনড ৩২-বিট ইন্টিজারের উপর করা হয়, তাই গুণফলগুলো র্যাপ অ্যারাউন্ড হয় (এগুলো 2³² মডিউলোতে নেওয়া হয়) এবং রাইট শিফটগুলো লজিক্যাল হয় (এগুলো শূন্য শিফট করে)।
hash = 0x811C9DC5
for each byte b in UTF-8(key):
hash = hash XOR b
hash = (hash * 0x01000193) mod 2^32
hash = hash XOR (hash >> 16)
hash = (hash * 0x85EBCA6B) mod 2^32
hash = hash XOR (hash >> 13)
hash = (hash * 0xC2B2AE35) mod 2^32
hash = hash XOR (hash >> 16)ফলাফলটি হলো শ্লোকটির সর্ট কী, যা ০ থেকে ৪,২৯৪,৯৬৭,২৯৫ পর্যন্ত একটি সংখ্যা।
ধাপ ৬: শ্লোকগুলো সাজান
শ্লোকগুলোকে তাদের সর্ট কী অনুসারে, ছোট থেকে ছোট ক্রমে সাজান এবং কী-গুলোকে অচিহ্নিত সংখ্যা হিসেবে তুলনা করুন।
যদি দুটি পদের একই সর্ট কী থাকে (যা খুবই বিরল), তবে ধাপ ৪ থেকে প্রাপ্ত যেটির কী স্ট্রিং ক্রমিক (ক্যারেক্টার কোড) ক্রমে প্রথমে আসে, সেটিকে প্রথমে রাখুন। কী স্ট্রিংগুলো সবই একই প্রিফিক্স দিয়ে শুরু হয়, তাই এগুলোর মধ্যে পার্থক্য শুধু পরবর্তী ASCII রেফারেন্সে থাকে।
ধাপ ৭: শ্লোকটি বাছাই করুন।
দিনের শ্লোকটি হলো সাজানো তালিকার p mod n অবস্থানে থাকা শ্লোকটি (০ থেকে গণনা করে), যেখানে p হলো ৩ নং ধাপের অবস্থান (বছরের দিন, অথবা ছুটির দিনে year × k + i ) এবং n হলো সাজানো তালিকার শ্লোক সংখ্যা। mod এর ফলাফল কখনোই ঋণাত্মক হয় না (বছর ঋণাত্মক হলে, ঋণাত্মক না হওয়া পর্যন্ত n যোগ করতে থাকুন)।
সাধারণ দিনগুলিতে, সম্পূর্ণ ডেটাসেটে কমপক্ষে ৩৬৬টি আয়াত থাকে, তাই day mod n মানে কেবল day mod এর বিষয়টি তখন গুরুত্বপূর্ণ হয়ে ওঠে যখন আপনি এমন কোনো বিভাগ বা আপনার নিজের তালিকা থেকে বাছাই করেন যেখানে বছরের দিনের সংখ্যার চেয়ে কম আয়াত থাকে, সেক্ষেত্রে বছরের মধ্যেই আয়াতগুলির পুনরাবৃত্তি ঘটে। কোনো ছুটির দিনে, অবস্থানটি সেই ছুটির এক বছরের (এবং, যদি ছুটিটি বেশ কয়েক দিন ধরে চলে, তবে এক দিনের) আয়াতগুলির মধ্য দিয়ে যায়।
ছদ্মকোড
function verseOfTheDay(verses, holidays, date, seed = "", category = null):
year = date.year
day = dayOfYear(date) // 0 for January 1st
inUse = [v for v in verses
if (v.addedIn == null or v.addedIn <= year)
and (v.removedIn == null or year < v.removedIn)]
if category != null:
return pick([v for v in inUse if category in v.categories], seed + "|" + year, day)
holiday = first h in holidays where (h.month == date.month and h.day == date.day)
or (h.dates contains format(date, "YYYY-MM-DD"))
if holiday != null:
holidayVerses = [v for v in inUse if holiday.id in v.categories]
if holidayVerses is not empty:
if holiday.dates == null:
position = year
else:
datesInYear = [d for d in holiday.dates if d starts with year + "-"]
position = year * length(datesInYear) + count of d in datesInYear where d < date
return pick(holidayVerses, seed + "|" + holiday.id, position)
holidayIds = [h.id for h in holidays]
return pick([v for v in inUse if no category of v is in holidayIds], seed + "|" + year, day)
function pick(candidates, prefix, position):
if candidates is empty: return null
keyed = [(hash(key), key, v) for v in candidates
where key = prefix + "|" + v.book + " " + v.chapter + ":" + v.verse]
sort keyed by (hash, key) // hash as an unsigned number, key in ordinal order
return keyed[position mod length(keyed)].verse // a mod that is never negativeবছরের প্রতিটি সাধারণ তারিখের জন্য একই সাজানো তালিকা ব্যবহার করা হয়, তাই আপনি যদি অনেক তারিখের জন্য শ্লোক বাছাই করেন, তবে বছরে একবার তালিকাটি সাজিয়ে নিন এবং সেটিই পুনরায় ব্যবহার করুন।
বীজ
সিড প্রতিটি পদের কী (key) পরিবর্তন করে, ফলে এটি একই নিশ্চয়তা (এক বছরের মধ্যে কোনো পুনরাবৃত্তি নেই, প্রতি বছর একটি নতুন ক্রম, স্থিতিশীল ইতিহাস) সহ সম্পূর্ণ ভিন্ন একটি ক্রম প্রদান করে। যদি আপনি চান যে আপনার অ্যাপের জন্য সবার জন্য নির্ধারিত পদের পরিবর্তে নিজস্ব একটি ‘দিনের পদ’ থাকুক, তাহলে আপনার অ্যাপের নামের মতো নিজস্ব একটি সিড ব্যবহার করুন। অন্য সবার মতো একই পদ দেখাতে চাইলে এটি খালি রাখুন।
সাধারণ ভুল
- সাইনড ইন্টিজার। যেসব ভাষায় আনসাইনড ৩২-বিট ইন্টিজার নেই (যেমন জাভা, কোটলিন, জাভাস্ক্রিপ্ট), সেখানে গাণিতিক কাজটি সাইনড ৩২-বিট ইন্টিজারের উপর করুন এবং একটি লজিক্যাল রাইট শিফট (
>>>) ব্যবহার করুন। এরপর তুলনা করার আগে ফলাফলটিকে একটি আনসাইনড মানে (যেমন জাভাস্ক্রিপ্টেhash.toLong() and 0xFFFFFFFFবাhash >>> 0) রূপান্তর করুন। জাভাস্ক্রিপ্টে গুণের জন্যMath.imulব্যবহার করুন;*ব্যবহার করলে নির্ভুলতা কমে যায়। - বাইটের পরিবর্তে ক্যারেক্টার হ্যাশ করা। কী-এর UTF-8 বাইটগুলোকে হ্যাশ করুন, এর UTF-16 কোড ইউনিট বা ইউনিকোড কোড পয়েন্টগুলোকে নয়। এটি শুধুমাত্র নন-ASCII ক্যারেক্টারযুক্ত সিডের ক্ষেত্রে প্রযোজ্য, তবে সেগুলো অনুমোদিত।
- 'আজকের' জন্য UTC ব্যবহার করুন। ব্যবহারকারীর স্থানীয় মধ্যরাতে দিনের শ্লোকটি পরিবর্তিত হয়। UTC-তে তারিখ ব্যবহার করলে বেশিরভাগ টাইম জোনে দিনের একটি অংশের জন্য আগের বা পরের দিনের শ্লোকটি দেখা যায়।
- বছরের দিন গণনা ১ থেকে শুরু হয়। ১লা জানুয়ারি হলো দিন ০।
- ছুটির তারিখ গণনা করা হচ্ছে। ডেটাসেটে তালিকাভুক্ত
datesব্যবহার করুন। বিভিন্ন গির্জা এবং ক্যালেন্ডার ইস্টার ভিন্নভাবে গণনা করে, এবং ডেটাসেটটি কেবল পূর্ব-গণনাকৃত তারিখগুলিই তালিকাভুক্ত করে। - ছুটির দিনগুলো বাদ দিয়ে।
holidaysছাড়া, ছুটির দিনের শ্লোকগুলোকে সাধারণ শ্লোক হিসেবে গণ্য করা হয়, যা প্রতিটি সাধারণ দিনের শ্লোককেও পরিবর্তন করে দেয়। - অপসারিত আয়াতগুলো বাদ দেওয়া হচ্ছে। যে আয়াতগুলোর বছর
removedIn, সেগুলো এখনও ডেটাসেটে আছে কারণ আগের বছরগুলোর জন্য সেগুলোর প্রয়োজন। ধাপ ২ ব্যবহার করে সেগুলোকে ফিল্টার করুন; তালিকাটি ডাউনলোড করার সময় এগুলো বাদ দেবেন না।
টেস্ট ভেক্টর
কোনো বাস্তবায়ন যাচাই করতে এই মানগুলো ব্যবহার করুন।
হ্যাশ
| কী (একটি JSON স্ট্রিং হিসাবে) | সাজানোর চাবি | হেক্স |
|---|---|---|
"" | 2872998923 | 0xab3e7c0b |
"a" | 444641715 | 0x1a80b1b3 |
"|2026|JHN 3:16" | 1930190452 | 0x730c5e74 |
"my-app|2026|PSA 23:1" | 2020168843 | 0x7869548b |
"é|1|GEN 1:1" | 3677064616 | 0xdb2b8da8 |
বছরের দিনগুলি
| তারিখ | বছর | বছরের দিন |
|---|---|---|
| 2026-01-01 | 2026 | 0 |
| 2026-12-31 | 2026 | 364 |
| 2028-02-29 | 2028 | 59 |
| 2028-12-31 | 2028 | 365 |
| 1900-12-31 | 1900 | 364 |
| 2000-12-31 | 2000 | 365 |
| 0001-03-01 | 1 | 59 |
| 9999-12-31 | 9999 | 364 |
একটি ছোট তালিকা থেকে বাছাই
এগুলিতে ষোলটি শ্লোকের এই তালিকাটি ব্যবহৃত হয়, যার মধ্যে আটটি ছুটির দিনের জন্য:
[
{ "book": "GEN", "chapter": 1, "verse": 1, "categories": ["praise"] },
{
"book": "PSA",
"chapter": 23,
"verse": 1,
"categories": ["comfort", "provision"]
},
{
"book": "PRO",
"chapter": 3,
"verse": 5,
"endVerse": 6,
"categories": ["faith", "guidance"]
},
{
"book": "ISA",
"chapter": 40,
"verse": 31,
"categories": ["strength", "hope"]
},
{
"book": "JHN",
"chapter": 3,
"verse": 16,
"categories": ["love", "salvation"]
},
{
"book": "ROM",
"chapter": 8,
"verse": 28,
"categories": ["hope"],
"removedIn": 2027
},
{ "book": "PHP", "chapter": 4, "verse": 13, "categories": ["strength"] },
{
"book": "1JN",
"chapter": 4,
"verse": 19,
"categories": ["love"],
"addedIn": 2027
},
{ "book": "LUK", "chapter": 2, "verse": 7, "categories": ["christmas"] },
{
"book": "LUK",
"chapter": 2,
"verse": 10,
"endVerse": 11,
"categories": ["christmas"]
},
{
"book": "MAT",
"chapter": 1,
"verse": 23,
"categories": ["christmas"],
"addedIn": 2027
},
{
"book": "MAT",
"chapter": 28,
"verse": 6,
"categories": ["resurrection-sunday"]
},
{
"book": "ACT",
"chapter": 2,
"verse": 24,
"categories": ["post-resurrection-sunday"]
},
{
"book": "ROM",
"chapter": 6,
"verse": 9,
"categories": ["post-resurrection-sunday"]
},
{
"book": "1CO",
"chapter": 15,
"verse": 20,
"categories": ["post-resurrection-sunday"]
},
{
"book": "1TH",
"chapter": 4,
"verse": 14,
"categories": ["post-resurrection-sunday"]
}
]এবং এই ছুটির দিনগুলো (বড়দিনের আগের রাতে কোনো শ্লোক নেই, তাই এটি একটি সাধারণ দিন):
[
{ "id": "christmas-eve", "month": 12, "day": 24 },
{ "id": "christmas", "month": 12, "day": 25 },
{ "id": "resurrection-sunday", "dates": ["2026-04-05", "2027-03-28"] },
{
"id": "post-resurrection-sunday",
"dates": [
"2026-04-06",
"2026-04-07",
"2026-04-08",
"2027-03-29",
"2027-03-30",
"2027-03-31"
]
}
]২০২৬-০১-০১ তারিখের জন্য ডিফল্ট সিড ব্যবহার করলে, চারটি ছুটির দিনের শ্লোক এবং ১ যোহন ৪:১৯ (যা এখনও ব্যবহৃত হচ্ছে না) বাদ দেওয়া হয়, ফলে সাতটি শ্লোক অবশিষ্ট থাকে। তাদের সর্ট কী অনুসারে সাজালে, সেগুলো হলো:
| অবস্থান | চাবি | সাজানোর চাবি |
|---|---|---|
| 0 | |2026|PSA 23:1 | 638659039 |
| 1 | |2026|ROM 8:28 | 1462075190 |
| 2 | |2026|PRO 3:5 | 1643805236 |
| 3 | |2026|JHN 3:16 | 1930190452 |
| 4 | |2026|PHP 4:13 | 2076082788 |
| 5 | |2026|GEN 1:1 | 2439817197 |
| 6 | |2026|ISA 40:31 | 3044461366 |
জানুয়ারির ১ তারিখ হলো দিন ০, তাই দিনের পদটি হলো গীতসংহিতা ২৩:১। মার্চের ১৫ তারিখ হলো দিন ৭৩, এবং ৭৩ মড ৭ = ৩, তাই এটি হলো যোহন ৩:১৬।
ক্রিসমাসে, কেবল প্রচলিত ক্রিসমাস শ্লোকগুলোই অবশিষ্ট থাকে। ২০২৭ সালে, তাদের সর্ট কী অনুসারে সাজানো তিনটি শ্লোক রয়েছে:
| অবস্থান | চাবি | সাজানোর চাবি |
|---|---|---|
| 0 | |christmas|LUK 2:10 | 1698480150 |
| 1 | |christmas|MAT 1:23 | 2563849700 |
| 2 | |christmas|LUK 2:7 | 3160581874 |
২০২৭ মড ৩ = ২, সুতরাং ২০২৭ সালের বড়দিনের দিনের শ্লোকটি হলো লূক ২:৭। ২০২৬ সালে, মথি ১:২৩ তখনও ব্যবহৃত হয় না, তাই কেবল দুটি শ্লোক থাকে, এবং ২০২৬ মড ২ = ০ হলে পাওয়া যায় লূক ২:১০-১১।
পুনরুত্থান রবিবারের পরের উৎসবটি তিন দিন স্থায়ী হয়। এর চারটি শ্লোক, তাদের বাছাইয়ের চাবি অনুসারে সাজানো হলে, হলো:
| অবস্থান | চাবি | সাজানোর চাবি |
|---|---|---|
| 0 | |post-resurrection-sunday|1TH 4:14 | 80824114 |
| 1 | |post-resurrection-sunday|ROM 6:9 | 665551464 |
| 2 | |post-resurrection-sunday|1CO 15:20 | 820536316 |
| 3 | |post-resurrection-sunday|ACT 2:24 | 3132510482 |
২০২৬ সালে এটি তিন দিন পালন করা হয়, তাই k = ৩, এবং এপ্রিলের ৬, ৭ ও ৮ তারিখের অবস্থানগুলো হলো ২০২৬ × ৩ + ০ = ৬০৭৮, ৬০৭৯ ও ৬০৮০। ৬০৭৮ মড ৪ = ২, ৬০৭৯ মড ৪ = ৩, এবং ৬০৮০ মড ৪ = ০ থেকে পাওয়া যায় ১ করিন্থীয় ১৫:২০, প্রেরিত ২:২৪, এবং ১ থেসালোনিকীয় ৪:১৪। ২০২৭ সালে অবস্থানগুলো ৬০৮১ থেকে চলতে থাকে, তাই পরবর্তী পদটি হলো রোমীয় ৬:৯।
| তারিখ | বীজ | বিভাগ | আজকের শ্লোক |
|---|---|---|---|
| 2026-01-01 | গীতসংহিতা ২৩:১ | ||
| 2026-01-02 | রোমীয় ৮:২৮ | ||
| 2026-03-15 | যোহন ৩:১৬ | ||
| 2026-12-31 | গীতসংহিতা ২৩:১ | ||
| 2027-01-01 | যোহন ৩:১৬ | ||
| 2027-06-30 | প্রো ৩:৫-৬ | ||
| 2028-02-29 | প্রো ৩:৫-৬ | ||
| 2028-12-31 | গীতসংহিতা ২৩:১ | ||
| 1969-12-31 | প্রো ৩:৫-৬ | ||
| 0001-01-01 | যিশাইয় ৪০:৩১ | ||
| 2026-01-01 | my-app | যিশাইয় ৪০:৩১ | |
| 2027-01-01 | my-app | পিএইচপি ৪:১৩ | |
| 2026-01-01 | hope | রোমীয় ৮:২৮ | |
| 2027-01-01 | hope | যিশাইয় ৪০:৩১ | |
| 2027-01-01 | joy | দিনের কোনো শ্লোক নেই | |
| 2026-12-25 | লূক ২:১০-১১ | ||
| 2027-12-25 | লূক ২:৭ | ||
| 2028-12-25 | লূক ২:১০-১১ | ||
| 2029-12-25 | মথি ১:২৩ | ||
| 2026-12-25 | my-app | লূক ২:১০-১১ | |
| 2026-04-05 | মথি ২৮:৬ | ||
| 2027-03-28 | মথি ২৮:৬ | ||
| 2028-04-16 | গীতসংহিতা ২৩:১ | ||
| 2026-12-24 | গীতসংহিতা ২৩:১ | ||
| 2026-07-01 | christmas | লূক ২:৭ | |
| 2026-04-06 | ১ করিন্থীয় ১৫:২০ | ||
| 2026-04-07 | প্রেরিত ২:২৪ | ||
| 2026-04-08 | ১ থিষলনীকীয় ৪:১৪ | ||
| 2026-04-09 | গীতসংহিতা ২৩:১ | ||
| 2027-03-29 | রোমীয় ৬:৯ | ||
| 2027-03-30 | ১ করিন্থীয় ১৫:২০ | ||
| 2027-03-31 | প্রেরিত ২:২৪ |
২০২৮-০৪-১৬ হলো পুনরুত্থান রবিবার, কিন্তু এটি এই তালিকার dates এর মধ্যে নেই, তাই এটি একটি সাধারণ দিন।
ডেটাসেট থেকে বাছাই
ডেটাসেটটি শুরু হয়ে যাওয়া বছরের আয়াতগুলো কখনো পরিবর্তন করে না, তাই এই ২০২৬টি দিনের আয়াত একই থাকে:
| তারিখ | ছুটি | আজকের শ্লোক |
|---|---|---|
| 2026-01-01 | গীতসংহিতা ৩২:১ | |
| 2026-04-03 | শুভ শুক্রবার | লূক ২৩:৩৩ |
| 2026-04-05 | পুনরুত্থান রবিবার | মথি ২৮:৯ |
| 2026-04-06 | পুনরুত্থান রবিবারের পরে | প্রকাশিত বাক্য ১:১৭-১৮ |
| 2026-06-15 | EST ৪:১৪ | |
| 2026-10-28 | গীতসংহিতা ১৩৬:১ | |
| 2026-10-31 | অল হ্যালোজ ইভ | ইফিষীয় ৫:৮ |
| 2026-11-29 | আগমনকালের প্রথম রবিবার | মালাখি ৩:১ |
| 2026-12-24 | ক্রিসমাস ইভ | মথি ১:২১ |
| 2026-12-25 | ক্রিসমাস | যিশাইয় ৯:৬ |
| 2026-12-31 | যিহূদী ৩৬:২৬ |
বাস্তবায়ন
এই বাস্তবায়নগুলো প্রচলিত নিয়ম অনুসরণ করে, এবং এদের পরীক্ষাগুলো এই পৃষ্ঠার মানগুলো যাচাই করে:
- জাভাস্ক্রিপ্ট/টাইপস্ক্রিপ্ট:
free-use-bible-apiপ্যাকেজেরpickVerseOfTheDay()এবংFreeUseBibleApi.getVerseOfTheDay()( উৎস )। - কোটলিন: কোটলিন এসডিকে- তে
pickVerseOfTheDay()এবংFreeUseBibleApi.getVerseOfTheDay()( উৎস )। - সুইফট: সুইফট এসডিকে- তে
pickVerseOfTheDay(_:date:seed:category:holidays:)এবংFreeUseBibleAPI.getVerseOfTheDay(date:seed:category:dataset:endpoint:)( উৎস )। - এমসিপি সার্ভারের
getVerseOfTheDayটুল ( উৎস )। @helloao/toolsএর মধ্যেgetVerseOfTheDay()( উৎস ), যা প্যাকেজের অন্তর্নির্মিত তালিকাটি ব্যবহার করে।