codice:
/**
* java.text.SimpleDateFormat
* Si usa allo stesso identico modo di:
* http://java.sun.com/j2se/1.4.1/docs/...ateFormat.html
*/
var LOCALIZED_MONTHS = new Array(
"Gennaio", "Febbraio", "Marzo", "Aprile",
"Maggio", "Giugno", "Luglio", "Agosto",
"Settembre", "Ottobre", "Novembre", "Dicembre"
);
var LOCALIZED_DAYS = new Array(
"Domenica", "Lunedì",
"Martedì", "Mercoledì",
"Giovedì", "Venerdì", "Sabato"
);
String.prototype.nf = function(c)
{
return this.length < c ? ("0" + this).nf(c) : this;
}
String.prototype.isBrokenApart = function()
{
if (this.length < 2)
return (this.length < 1 || this < 'A' || this > 'z');
return false;
}
Array.prototype.ss = function(i, exp, func)
{
var it = this[i].split(exp);
if (it.length < 2)
return this[i].isBrokenApart();
eval("this.splice(i, 1, '" + it.join("',func,'") + "')");
return this[i].isBrokenApart();
}
function _yyy(d) {return d.getFullYear()};
function _yy(d) {return ("" + d.getFullYear()).substring(2)};
function _y(d) {return d.getFullYear()};
function _MMMM(d) {return LOCALIZED_MONTHS[d.getMonth()]};
function _MMM(d) {return LOCALIZED_MONTHS[d.getMonth()].substring(0, 3)};
function _MM(d) {return ("" + (d.getMonth() + 1)).nf(2)};
function _M(d) {return d.getMonth() + 1};
function _dd(d) {return ("" + d.getDate()).nf(2)};
function _d(d) {return d.getDate()};
function _EEEE(d) {return LOCALIZED_DAYS[d.getDay()]};
function _EEE(d) {return LOCALIZED_DAYS[d.getDay()].substring(0, 3)};
function _EE(d) {return ("" + d.getDay()).nf(2)};
function _E(d) {return d.getDay()};
function _HH(d) {return ("" + d.getHours()).nf(2)};
function _H(d) {return d.getHours()};
function _mm(d) {return ("" + d.getMinutes()).nf(2)};
function _m(d) {return d.getMinutes()};
function _ss(d) {return ("" + d.getSeconds()).nf(2)};
function _s(d) {return d.getSeconds()};
function _SSS(d) {return ("" + d.getMilliseconds()).nf(3)};
function _SS(d) {return ("" + d.getMilliseconds()).nf(2)};
function _S(d) {return d.getMilliseconds()};
function _a(d) {return d.getHours() < 12 ? "AM" : "PM"};
function _KK(d) {return d.getHours() <= 12 ? d.getHours() : ("" + (d.getHours() - 12)).nf(2)};
function _K(d) {return d.getHours() <= 12 ? d.getHours() : d.getHours() - 12};
function SimpleDateFormat(pattern)
{
var ps = (" " + pattern + " ").split("'");
if (ps.length % 2 == 0) return;
for (var i = 1; i < ps.length - 1; i++)
{
if (ps[i] == "")
{
ps[i-1] += "'" + ps[i+1];
ps.splice(i--, 2);
}
}
for (var i = 0; i < ps.length; i+=2)
if
(
ps[i].isBrokenApart()
|| ps.ss(i, /y{3,}/, _yyy)
|| ps.ss(i, "yy", _yy)
|| ps.ss(i, "y", _y)
|| ps.ss(i, /M{4,}/, _MMMM)
|| ps.ss(i, "MMM", _MMM)
|| ps.ss(i, "MM", _MM)
|| ps.ss(i, "M", _M)
|| ps.ss(i, /d{2,}/, _dd)
|| ps.ss(i, "d", _d)
|| ps.ss(i, /E{4,}/, _EEEE)
|| ps.ss(i, "EEE", _EEE)
|| ps.ss(i, "EE", _EE)
|| ps.ss(i, "E", _E)
|| ps.ss(i, /H{2,}/, _HH)
|| ps.ss(i, "H", _H)
|| ps.ss(i, /m{2,}/, _mm)
|| ps.ss(i, "m", _m)
|| ps.ss(i, /s{2,}/, _ss)
|| ps.ss(i, "s", _s)
|| ps.ss(i, /S{3,}/, _SSS)
|| ps.ss(i, "SS", _SS)
|| ps.ss(i, "S", _S)
|| ps.ss(i, /a+/, _a)
|| ps.ss(i, /K{2,}/, _KK)
|| ps.ss(i, "K", _K)
)
continue;
ps[0] = ps[0].substring(1);
pl = ps.length - 1;
ps[pl] = ps[pl].substring(0, ps[pl].length - 1);
this.ps = ps;
}
SimpleDateFormat.prototype.format = function(d)
{
var r = "";
for (var i = 0; i < this.ps.length; i++)
if (typeof this.ps[i] == "function")
r += this.ps[i](d);
else
r += this.ps[i];
return r;
}