-- Module:BirthdayCountdown local p = {}  function p.daysUntil(frame)     local birthdate = frame.args["জন্মতারিখ"] or frame.args[1]     if not birthdate then         return "দয়া করে জন্মতারিখ দিন (YYYY-MM-DD ফরম্যাটে)"     end      -- জন্মতারিখ থেকে বছর, মাস, দিন আলাদা করা     local birthYear, birthMonth, birthDay = birthdate:match("(%d+)-(%d+)-(%d+)")     birthYear = tonumber(birthYear)     birthMonth = tonumber(birthMonth)     birthDay = tonumber(birthDay)      if not birthYear or not birthMonth or not birthDay then         return "সঠিক ফরম্যাটে জন্মতারিখ দিন: YYYY-MM-DD"     end      -- বর্তমান তারিখ     local now = os.date("*t")     local currentYear = now.year     local currentMonth = now.month     local currentDay = now.day      -- বয়স গণনা (সঠিকভাবে)     local ageYears = currentYear - birthYear     local ageMonths = currentMonth - birthMonth     local ageDays = currentDay - birthDay      -- বয়স সংশোধন     if ageDays < 0 then         -- পূর্বের মাসের শেষ দিন খুঁজে বের করা         local tempDate         if currentMonth == 1 then             tempDate = os.time{year=currentYear-1, month=12, day=0}         else             tempDate = os.time{year=currentYear, month=currentMonth-1, day=0}         end         local lastDayOfPrevMonth = os.date("*t", tempDate - 86400).day         ageDays = ageDays + lastDayOfPrevMonth + 1  -- সংশোধন: +1 যোগ করা হয়েছে         ageMonths = ageMonths - 1     end     if ageMonths < 0 then         ageMonths = ageMonths + 12         ageYears = ageYears - 1     end      -- পরবর্তী জন্মদিন গণনা     local nextBirthYear = currentYear     if currentMonth > birthMonth or (currentMonth == birthMonth and currentDay > birthDay) then         nextBirthYear = currentYear + 1     end      local nextBirthday = os.time{year=nextBirthYear, month=birthMonth, day=birthDay}     local today = os.time{year=currentYear, month=currentMonth, day=currentDay}      -- বাকি দিন গণনা (সঠিকভাবে)     local daysLeft = math.floor((nextBirthday - today) / 86400) + 1  -- সংশোধন: +1 যোগ করা হয়েছে      -- বাকি মাস ও দিন গণনা (সঠিকভাবে)     local monthsLeft = 0     local remainingDays = daysLeft          -- সঠিক মাস গণনা     if daysLeft > 30 then         monthsLeft = math.floor(daysLeft / 30.44)  -- গড় মাসের দিন         remainingDays = daysLeft - math.floor(monthsLeft * 30.44)                  -- সামঞ্জস্য করা         if remainingDays < 0 then             remainingDays = 0         end     end      -- জন্মদিনের তারিখ ফরম্যাট করা     local birthdayFormatted = string.format("%02d-%02d-%04d", birthDay, birthMonth, nextBirthYear)      -- বিশেষ বার্তা     if daysLeft == 0 then         return "🎉 আজ আমার জন্মদিন! 🎉\n"..                "আমার বর্তমান বয়স: "..ageYears.." বছর "..ageMonths.." মাস "..ageDays.." দিন\n"..                "ধন্যবাদ সবাইকে!"     elseif daysLeft <= 3 then         return "শুধু "..daysLeft.." দিন বাকি আমার জন্মদিনে! ("..birthdayFormatted..")\n"..                "আমার বর্তমান বয়স: "..ageYears.." বছর "..ageMonths.." মাস "..ageDays.." দিন\n"..                "প্রস্তুত হোন!"     end      -- সাধারণ আউটপুট     local output = "📅 পরবর্তী জন্মদিন: "..birthdayFormatted.."\n"..                   "⏳ সময় বাকি: "..daysLeft.." দিন"                        if monthsLeft > 0 then         output = output.." ("..monthsLeft.." মাস "..remainingDays.." দিন)"     end          output = output.."\n\n🎂 আমার বর্তমান বয়স: "..ageYears.." বছর "..ageMonths.." মাস "..ageDays.." দিন\n"..              "💖 আপনাদের ভালোবাসা কামনা করছি!"      return output end  return p