
dias=[
 "Domingo",
 "Segunda-feira",
 "Terça-feira",
 "Quarta-feira",
 "Quinta-feira",
 "Sexta-feira",
 "Sábado"
]

meses=[
  "Janeiro",
  "Fevereiro",
  "Março",
  "Abril",
  "Maio",
  "Junho",
  "Julho",
  "Agosto",
  "Setembro",
  "Outubro",
  "Novembro",
  "Dezembro"
]

function botaZero(n,c){
  if(typeof(c)=="undefined")c="0"
  return n<10?c+n:n
}

/*
  Implementa com defeito: %g e %G
  Não implementa: %j, %U, %V, %W e %Z
*/

Date.prototype.strftime=function(format){
  format=format.replace(/%%/g,"[porcento]")
  format=format.replace(/%X/g,"%T")
  format=format.replace(/%x/g,"%D")
  format=format.replace(/%D/g,"%m/%d/%y")
  format=format.replace(/%r/g,"%I:%M:%S %p")
  format=format.replace(/%R/g,"%H:%M")
  format=format.replace(/%T/g,"%H:%M:%S")
  format=format.replace(/%a/g,dias[this.getDay()].substr(0,3))
  format=format.replace(/%A/g,dias[this.getDay()])
  format=format.replace(/%b/g,"%h")
  format=format.replace(/%B/g,meses[this.getMonth()])
  format=format.replace(/%c/g,dias[this.getDay()]+", "+this.getDate()+
                              " de "+meses[this.getMonth()]+" de "+
                              this.getFullYear()+", "+this.getHours()+":"+
                              this.getMinutes()+":"+this.getSeconds())
  format=format.replace(/%C/g,Math.floor(this.getFullYear()/100))
  format=format.replace(/%d/g,botaZero(this.getDate()))
  format=format.replace(/%e/g,botaZero(this.getDate()," "))
  format=format.replace(/%g/g,"%y")
  format=format.replace(/%G/g,"%Y")
  format=format.replace(/%h/g,meses[this.getMonth()].substr(0,3))
  format=format.replace(/%H/g,this.getHours())
  var hora=this.getHours()%12
  if(hora==0)hora=12
  format=format.replace(/%I/g,botaZero(hora))
  format=format.replace(/%m/g,botaZero(this.getMonth()+1))
  format=format.replace(/%M/g,botaZero(this.getMinutes()))
  format=format.replace(/%n/g,"\n")
  format=format.replace(/%p/g,this.getHours()>11?"PM":"AM")
  format=format.replace(/%S/g,botaZero(this.getSeconds()))
  format=format.replace(/%t/g,"\t")
  format=format.replace(/%u/g,this.getDay()==0?7:this.getDay())
  format=format.replace(/%w/g,this.getDay())
  format=format.replace(/%y/g,botaZero(this.getFullYear()%100))
  format=format.replace(/%Y/g,this.getFullYear())
  format=format.replace(/\[porcento\]/g,"%")
  return format
}

