UNPKG

@ciebit/calendario

Version:

Representa um calendário visual

62 lines (52 loc) 1.9 kB
///<reference path="../../js/datatempo/data.ts"/> module Ciebit.Calendario { export class Controlador { private Layout: Layout; private Calendario: Calendario; public constructor(Layout:Layout, Calendario:Calendario) { this.Layout = Layout; this.Calendario = Calendario; } public atualizar(): this { let data = this.Calendario.obterData(); let dataTempo = new DataTempo(data); this.Layout.definirAno(data.getFullYear()); this.Layout.definirMes(dataTempo.obterMesAbr()); this.Layout.definirDias(this.indicesDias(data)); return this; } //Retorna um array com os numeros que serão inseridos no calendário private indicesDias(data:Date):Array<number> { let indice = new Date(data.getFullYear(), data.getMonth(), 1).getDay(); let ultimo_dia_mes_anterior = new Date(data.getFullYear(), data.getMonth(), 0).getDate(); let ultimo_dia_mes_atual = new Date(data.getFullYear(), data.getMonth() + 1, 0).getDate(); let array = []; console.log(ultimo_dia_mes_atual); let x, y, z; x = y = z = 0; if (indice > 0) { x = (ultimo_dia_mes_anterior + 1) - indice; } for (let i = 0; i < 42; i++) { if (x <= ultimo_dia_mes_anterior) { array.push(x); x++; } else if(x > ultimo_dia_mes_anterior) { if(y >= ultimo_dia_mes_atual) { z++; array.push(z); } else { y++; array.push(y); } } } return array; } } }