ব্যবহারকারী:Bodhisattwa/bncalender.js
টীকা: সংরক্ষণ করার পর, পরিবর্তনসমূহ তৎক্ষণাৎ নাও দেখাতে পারে। আপনার ব্রাউজারের ক্যাশ কিভাবে এড়াবেন তা জানতে এখানে ক্লিক করুন।
- ফায়ারফক্স / সাফারি: Shift ধরে রাখা অবস্থায়পুনঃলোড করুন-এ ক্লিক করুন, অথবা Ctrl-F5 বা Ctrl-R (ম্যাক-এ ⌘-R) চাপুন
- গুগল ক্রোম: Ctrl-Shift-R (ম্যাক-এ ⌘-Shift-R) চাপুন
- ইন্টারনেট এক্সপ্লোরার: Ctrl ধরে রাখা অবস্থায় Refresh-এ ক্লিক করুন, অথবা Ctrl-F5 চাপুন
- অপেরা: মেনু → ব্যবস্থাপনাসমূহ-এ যান (ম্যাকে অপেরা → পছন্দসমূহ) এবং এরপর গোপনীয়তা ও সুরক্ষা → ব্রাউজিং-এর তথ্য পরিষ্কার করুন → ক্যাশে করা ছবি ও ফাইলগুলি।
অন্যান্য ব্রাউজার সম্পর্কে বিশদ নির্দেশাবলীর জন্য, উইকিপিডিয়া:আপনার ক্যাশে বাইপাস করুন দেখুন।
//Bangla calendar added to "Basic Calendar Java Script" -By Brian Gosselin @ http://scriptasylum.com
//and Bangla calendar created by Uttam Singha @ http://www.usingha.com
var mn = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
function buildCal(m, y, cM, cH, cDW, cD, brdr){
var bnum=['১']
var dim=[31,0,31,30,31,30,31,31,30,31,30,31];
var oD = new Date(y, m-1, 1); //DD replaced line to fix date bug when current day is 31st
oD.setTime(oD.getTime() + (oD.getTimezoneOffset() + 360) * 60 * 1000);
var bcal = Bangla_Date(y, m, 25);
var bcal1 = Bangla_Date(y, m, 10);
oD.od=oD.getDay()+1; //DD replaced line to fix date bug when current day is 31st
var byy = (m == 4) ? convert((bcal[0]-1)) + ' ' + convert(bcal[0]) : convert(bcal[0]);
var todaydate = new Date() //DD added
todaydate.setTime(todaydate.getTime() + (todaydate.getTimezoneOffset() + 360) * 60 * 1000);
var scanfortoday=(y==todaydate.getFullYear() && m==todaydate.getMonth()+1)? todaydate.getDate() : 0 //DD added
dim[1]=(((oD.getFullYear()%100!=0)&&(oD.getFullYear()%4==0))||(oD.getFullYear()%400==0))?29:28;
var t='<div class="'+cM+'"><table class="'+cM+'" cols="7" cellpadding="0" border="'+brdr+'" cellspacing="0"><tr align="center"><td colspan="2">'+beng_month_name[bcal1[1]]+'</td><td colspan="3">'+ byy + '</td><td colspan="2">' + beng_month_name[bcal[1]] + '</td><tr align="center">';
t+='<td colspan="7" align="center" class="'+cH+'">'+mn[m-1]+' - '+y+'</td></tr><tr align="center">';
t+='<tr align="center"><td>রবি</td> <td>সোম</td><td>মঙ্গল</td><td>বুধ</td><td>বৃহঃ</td><td>শুক্র</td><td>শনি</td></tr><tr align="center">';
for(s=0;s<7;s++)t+='<td class="'+cDW+'">'+"SMTWTFS".substr(s,1)+'</td>';
t+='</tr><tr align="center">';
for(i=1;i<=42;i++){
var x=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? i-oD.od+1 : ' ';
var indcal = Bangla_Date(y, m, i-oD.od+1);
var indcal1 = indcal[2]==1? '<font size="3" color="#800000">' + convert(indcal[2]) + '</font>' : convert(indcal[2])
var xj=((i-oD.od>=0)&&(i-oD.od<dim[m-1]))? indcal1 : ' ';
if (x==scanfortoday) //DD added
x='<span id="today">'+x+'</span>' //DD added
t+='<td class="'+cD+'">'+x+'<br><span id="bangla">' + xj + '</span></td>';
if(((i)%7==0)&&(i<36))t+='</tr><tr align="center">';
}
return t+='</tr></table></div>';
}
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 bmonth_len = "";
var Weekdays = new Array( "Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday");
var bWeekdays = new Array("রবি", "সোম", "মঙ্গল", "বুধ", "বৃহস্পতি", "শুক্র", "শনি", "রবি");
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 Bangla_Date(eyear, emonth, eday) {
var country = "India";
var str = "";
var startjd = 0.0;
if (country = "India") {
startjd = 1938094.4629; //India
}
else {
startjd = 1938094.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;
//bmonth_len =Math.floor(ns) + 0.5;
}
}
var array = [];
for (var i = 0; i < 12; 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(",");
//var bar = Math.floor(nJD + 0.5) % 7 + 1;
//str = convert(beday) + " " + beng_month_name[bemonth] + " " + convert(lasteyear + 1) + " বঙ্গাব্দ, " + Weekedays[bar] + "বার।";
}
//return str;
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 = Bangla_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])) + " বঙ্গাব্দ, " + bWeekdays[bar] + "বার।";
return str;
}
function formSubmit()
{
var todaydate = new Date();
todaydate.setTime(todaydate.getTime() + (todaydate.getTimezoneOffset() + 360) * 60 * 1000);
var curyear=todaydate.getFullYear();
var myyear;
if ((document.bdcalendar.myear.value)<595)
{ myyear =curyear;}
else
{myyear=document.bdcalendar.myear.value;}
var bdcal="";
bdcal+='<table border="0" width="80%" id="table1" cellspacing="0" cellpadding="0">' ;
bdcal+='<tr valign="top">' ;
bdcal+='<td>' + buildCal(1, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='<td>' + buildCal(2, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='<td>' + buildCal(3, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='</tr>' ;
bdcal+='<tr valign="top">' ;
bdcal+='<td>' + buildCal(4, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='<td>' + buildCal(5, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='<td>' + buildCal(6, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='</tr>' ;
bdcal+='<tr valign="top">' ;
bdcal+='<td>' + buildCal(7, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='<td>' + buildCal(8, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='<td>' + buildCal(9, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='</tr>' ;
bdcal+='<tr valign="top">' ;
bdcal+='<td>' + buildCal(10, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='<td>' + buildCal(11, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='<td>' + buildCal(12, myyear, "main", "month", "daysofweek", "days", 1) + '</td>' ;
bdcal+='</tr>' ;
bdcal+='</table>' ;
document.all.vvv.innerHTML=bdcal;
}
//------------------------------------------------------------------------------------------
// Calendar day from Julian Day
//------------------------------------------------------------------------------------------
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 BanglaMas() {
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 = Bangla_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]] + " " + 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;
}