ব্যবহারকারী:আফতাবুজ্জামান/BanglaDate.js

উইকিপিডিয়া, মুক্ত বিশ্বকোষ থেকে

লক্ষ্য করুন: প্রকাশ করার পর, পরিবর্তনগুলো দেখতে আপনাকে আপনার ব্রাউজারের ক্যাশে পরিষ্কার করার প্রয়োজন হতে পারে।

  • ফায়ারফক্স / সাফারি: পুনরায় লোড-এ ক্লিক করার সময় শিফট টিপে ধরে রাখুন, অথবা হয় Ctrl-F5 বা Ctrl-R টিপুন (ম্যাকে ⌘-R টিপুন)
  • গুগল ক্রোম: Ctrl-Shift-R (ম্যাকে ⌘-Shift-R) টিপুন
  • ইন্টারনেট এক্সপ্লোরার / এজ: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 টিপুন
  • অপেরা: Ctrl-F5 টিপুন।
//Script by Uttam Singha @ http://www.usingha.com
var mn = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var beng_month_name = new Array;
beng_month_name[1] = "বৈশাখ";
beng_month_name[2] = "জেঠ";
beng_month_name[3] = "আষাঢ়";
beng_month_name[4] = "হাওন";
beng_month_name[5] = "ভাদ";
beng_month_name[6] = "আশ্বিন";
beng_month_name[7] = "কার্তিক";
beng_month_name[8] = "অগ্রহায়ন";
beng_month_name[9] = "পৌষ";
beng_month_name[10] = "মাঘ";
beng_month_name[11] = "ফাল্গুন";
beng_month_name[12] = "চৈত";
var bWeekdays = new Array("লামুইসিং",
                "নিংথৌকাপা",
                 "লেইপাকপা",
                 "ইনসাইনসা",
                 "সাকলসেন",
                 "ইরেই",
                 "থাংচা",
                 "লামুইসিং");
var bmonth_len = "";
var bWeekdays1 = new Array("লাম", "নিং", "লেই", "ইন", "সাক", "ইরে", "থাং", "লাম");
function convert(str) {
    var mystr = str.toString();
    var outj; // javascript escaped hex
    var outj1;
    var be = new Array();
    be['1'] = "\u09E7";
    be['2'] = "\u09E8";
    be['3'] = "\u09E9";
    be['4'] = "\u09EA";
    be['5'] = "\u09EB";
    be['6'] = "\u09EC";
    be['7'] = "\u09ED";
    be['8'] = "\u09EE";
    be['9'] = "\u09EF";
    be['0'] = "\u09E6";
    be[' '] = '';
    be['-'] = '-';
    outj1 = "";
    for (var i = 0; i < mystr.length; i++) {
        var ch = mystr.substr(i, 1);
        outj = be[ch];
        outj1 += outj;
    }
    return outj1;

}

var mas_len = [0, 30.92569444, 62.63289352, 94.00184028, 125.4761458, 156.4885417, 186.9247338, 216.8066667, 246.3155787, 275.6427546, 305.0935301, 334.9103588, 365.2587564814815];

function ModernDate_to_Julianeday(eyear, emonth, eday) {
    var julian_eday;

    if (emonth < 3) {
        eyear = eyear - 1;
        emonth = emonth + 12;
    }

    julian_eday = Math.floor((365.25 * eyear)) + Math.floor(30.59 * (emonth - 2)) + eday + 1721086.5;
    if (eyear < 0) {
        julian_eday = julian_eday - 1;
        if (((eyear % 4) == 0) && (3 <= emonth)) {
            julian_eday = julian_eday + 1;
        }
    }
    if (2299160 < julian_eday) {
        julian_eday = julian_eday + Math.floor(eyear * 1.0 / 400) - Math.floor(eyear * 1.0 / 100) + 2;
    }

    return julian_eday;
}

function BPM_Date(eyear, emonth, eday) {
    var country = "Bangladesh";

    var str = "";
    var startjd = 0.0;
    if (country = "Bangladesh") {
        startjd = 1938092.48373; //Bangladesh
    }
    else {
        startjd = 1938092.483733333;
    }
    var nJD = ModernDate_to_Julianeday(eyear, emonth, eday);
    if (nJD < startjd) {
        str = " Date is not appropriate.\n";
    }
    else {
        var jddiff = nJD - startjd;
        var lasteyear = Math.floor(jddiff / 365.2587564814815);
        var mesh = startjd + lasteyear * 365.2587564814815;
        var lasteday = 0.0;
        var ps, ns, bemonth, beday;
        for (var i = 0; i < 12; i++) {
            ps = mesh + mas_len[i];
            ns = mesh + mas_len[i + 1];
            if ((nJD >= ps) && (nJD <= Math.floor(ns) + 1.75)) {
                bemonth = i + 1;
                beday = Math.floor(nJD - ps) + 1;
            }

        }
var array = [];
          for (var i = 0; i < 13; i++)
                     {
                         lastday = mesh + mas_len[i];
                         var nda = new Date(calData(lastday + 1).toDateString());
                         array.push((nda.getMonth()+1) + "/" + nda.getDate() + "/" + nda.getFullYear());
                     }
                     bmonth_len = array.join(",");
    }
    return new Array(lasteyear + 1, bemonth, beday);

}
function oneDay() {
    var now = new Date();
    now.setTime(now.getTime() + (now.getTimezoneOffset() + 360) * 60 * 1000);
    var eday = now.getDate();
    var emonth = now.getMonth();
    var eyear = now.getFullYear();
    var bcal = BPM_Date(eyear, emonth + 1, eday);
    var nJD = ModernDate_to_Julianeday(eyear, emonth + 1, eday);
    var bar = Math.floor(nJD + 0.5) % 7 + 1;
    var str = convert(bcal[2]) + " " + beng_month_name[bcal[1]] + " " + convert((bcal[0]));
    return str;
}
var theDiv = document.getElementById("contentSub"); 
var content = document.createTextNode(oneDay());
if(document.getElementById("ponji"))
{
var inx=document.getElementById("ponji");
  inx.innerHTML = oneDay();
}
theDiv.appendChild(content);
function calData(jd)
{
with(Math){
z1 = jd + 0.5;
z2 = floor(z1);
f = z1 - z2;
if(z2 < 2299161)a = z2;
else {
alf = floor((z2 - 1867216.25)/36524.25);
a = z2 + 1 + alf - floor(alf/4);
}
b = a + 1524;
c = floor((b - 122.1)/365.25);
d = floor(365.25*c);
e = floor((b - d)/30.6001);
days = b - d - floor(30.6001*e) + f;
kday = floor(days);
if(e < 13.5)kmon = e - 1;
else kmon = e - 13;
if(kmon > 2.5)kyear = c - 4716;
if(kmon < 2.5)kyear = c - 4715;
hh1 = (days - kday)*24;
khr = floor(hh1);
kmin = hh1 - khr;
ksek = kmin*60;
kmin = floor(ksek);
ksek = floor((ksek - kmin)*60);
if (kday < 10)kday = " " + kday;
if (khr < 10)khr = "0" + khr;
if (kmin < 10)kmin = "0" + kmin;
if (ksek < 10)ksek = "0" + ksek;
var dstr = mn[kmon - 1] + " " + kday + ", " + kyear + " " + khr + ":" + kmin + ":00";
//var sDate = new Date(Date.parse("03/20/2012", "MM/dd/yyyy"));
s = new Date(dstr);

}
return s;
}

function BPMMaha() {
    var dynTable = "";
    var now = new Date();
    now.setTime(now.getTime() + (now.getTimezoneOffset() + 360) * 60 * 1000); 
    var day = now.getDate();
    var month = now.getMonth();
    var year = now.getFullYear();
    var bcal = BPM_Date(year, month + 1, day);
    var mesh = 1938094.4629 + (bcal[0] - 1) * 365.2587564814815;
    var bar = calData(mesh + mas_len[bcal[1] - 1] + 1);
    var startingDay = bar.getDay();
    var one_day = 1000 * 60 * 60 * 24;
    var mr = bmonth_len.split(",");
    var diff = Math.ceil((new Date(mr[bcal[1]]) - new Date(mr[bcal[1] - 1])) / (one_day));

    var monthLength = diff;
    //bcal[2]
  var html = '<table class="gridtable">';
   html += '<tr><th colspan="7">';
   html +=  beng_month_name[bcal[1]] + "&nbsp;" + convert((bcal[0])) + " সন";
   html += '</th></tr>';
   html += '<tr>';
   for (var i = 0; i <= 6; i++) {
       html += '<td style=\"color: red; background: #99ff66; border: 1px solid black; font: 12px Siyam Rupali;\">';
       html += bWeekdays1[i];
       html += '</td>';
   }
   html += '</tr><tr>';
   var day = 1;
  // this loop is for is weeks (rows)
  for (var i = 0; i < 9; i++) {
    // this loop is for weekdays (cells)
    for (var j = 0; j <= 6; j++) { 
      html += '<td>';
      if (day <= monthLength && (i > 0 || j >= startingDay)) {
          if (day == bcal[2]) //DD added
          {
              html += 'আজি<br><font size="3" color="red">' + convert(day) +  '</font><br>'; //DD added
          }
          else {
              html +=  convert(day)  +  '<br>';
          }
      day++;
  }
  html += '</td>';
}
// stop making rows if we've run out of days
if (day > monthLength) {
    break;
} else {
    html += '</tr><tr>';
}
}
html += '</tr></table>';
return html;
}
if(document.getElementById("panji"))
{
var inx=document.getElementById("panji");
  inx.innerHTML = BPMMaha();
}

////////////////////