ਮੀਡੀਆਵਿਕੀ:Gadget-BanglaDate.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
//Script by Uttam Singha @ bpy.wikipedia.org ; this version is updated for the Bengali Wikipedia
//Modified by Mahir Morshed for the Bengali Wikisource
var mn = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
var beng_month_name = new Array(
"মাস নেই", "বৈশাখ", "জ্যৈষ্ঠ", "আষাঢ়", "শ্রাবণ", "ভাদ্র", "আশ্বিন", "কার্তিক", "অগ্রহায়ণ", "পৌষ", "মাঘ", "ফাল্গুন", "চৈত্র");
var bWeekdays = new Array(
"রবিবার", "সোমবার", "মঙ্গলবার", "বুধবার", "বৃহস্পতিবার", "শুক্রবার", "শনিবার", "রবিবার");
var bmonth_len = "";
var bWeekdays1 = new Array("রবি", "সোম", "মঙ্গল", "বুধ", "বৃহস্পতি", "শুক্র", "শনি", "রবি");
function convert(str) {
// this whole function could be rewritten
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;
}
// not sure which of these is better...
//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];
var mas_len = [0, 31, 62, 93, 124, 155, 185, 215, 245, 275, 305, 335, 365];
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, country) {
var str = "";
var startjd = 0.0;
if (country = "India") {
startjd = 1938093.4629; // India, according to http://www.ponjika.com/bncalendar.js
}
else {
startjd = 1938093.483733333; // Bangladesh?
}
var nJD = ModernDate_to_Julianeday(eyear, emonth, eday);
if (nJD < startjd) {
str = " তারিখ সঠিক নয়।\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, "Bangladesh");
var ical = BPM_Date(eyear, emonth + 1, eday, "India");
var nJD = ModernDate_to_Julianeday(eyear, emonth + 1, eday);
var bar = Math.floor(nJD + 0.5) % 7 + 1;
var str1 = convert(ical[2]) + " " + beng_month_name[ical[1]] + " " + convert((ical[0])) + " বঙ্গাব্দ, " + bWeekdays[bar];
var str2 = convert(bcal[2]) + " " + beng_month_name[bcal[1]] + " " + convert((bcal[0])) + " বঙ্গাব্দ, " + bWeekdays[bar];
return "(পশ্চিম) " + str2 + "; (পূর্ব) " + str1;
}
var theDiv = document.getElementById("contentSub");
var content = document.createTextNode(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;
}