-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #8 from DesignLiquido/biblioteca-calendario
- Loading branch information
Showing
3 changed files
with
318 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
export async function dia_mes_atual(): Promise<number> { | ||
const data = new Date(); | ||
return data.getDate(); | ||
} | ||
|
||
export async function dia_semana_atual(): Promise<number> { | ||
const data = new Date(); | ||
let diaDaSemana = data.getDay() + 1; | ||
if (diaDaSemana === 7) diaDaSemana = 0; | ||
return diaDaSemana; | ||
} | ||
|
||
export async function mes_atual(): Promise<number> { | ||
const data = new Date(); | ||
return data.getMonth() + 1; | ||
} | ||
|
||
export async function ano_atual(): Promise<number> { | ||
const data = new Date(); | ||
return data.getFullYear(); | ||
} | ||
|
||
export async function hora_atual(formato_12h: boolean): Promise<number> { | ||
const data = new Date(); | ||
if (!formato_12h) { | ||
return data.getHours(); | ||
} else { | ||
let hora = data.getHours() % 12; | ||
if (hora === 0) { | ||
hora = 12; | ||
} | ||
return hora; | ||
} | ||
} | ||
|
||
export async function minuto_atual(): Promise<number> { | ||
const data = new Date(); | ||
return data.getMinutes(); | ||
} | ||
|
||
export async function segundo_atual(): Promise<number> { | ||
const data = new Date(); | ||
return data.getSeconds(); | ||
} | ||
|
||
export async function milisegundo_atual(): Promise<number> { | ||
const data = new Date(); | ||
return data.getMilliseconds(); | ||
} | ||
|
||
export async function dia_semana_completo( | ||
numero_dia: number, | ||
caixa_alta: boolean, | ||
caixa_baixa: boolean | ||
): Promise<string> { | ||
const dias: string[] = [ | ||
'Domingo', | ||
'Segunda-Feira', | ||
'Terça-Feira', | ||
'Quarta-Feira', | ||
'Quinta-Feira', | ||
'Sexta-Feira', | ||
'Sábado', | ||
]; | ||
|
||
if (numero_dia > 0 && numero_dia < 8) { | ||
let dia: string = dias[numero_dia - 1]; | ||
|
||
if (caixa_alta) { | ||
dia = dia.toUpperCase(); | ||
} else if (caixa_baixa) { | ||
dia = dia.toLowerCase(); | ||
} | ||
|
||
return dia; | ||
} else { | ||
throw new Error(`'${numero_dia}' não corresponde a um dia da semana válido.`); | ||
} | ||
} | ||
|
||
export async function dia_semana_curto(numero_dia: number, caixa_alta: boolean, caixa_baixa: boolean): Promise<string> { | ||
const dias: string[] = ['Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sabado']; | ||
|
||
if (numero_dia > 0 && numero_dia < 8) { | ||
let dia: string = dias[numero_dia - 1]; | ||
|
||
if (caixa_alta) { | ||
dia = dia.toUpperCase(); | ||
} else if (caixa_baixa) { | ||
dia = dia.toLowerCase(); | ||
} | ||
|
||
return dia; | ||
} else { | ||
throw new Error(`'${numero_dia}' não corresponde a um dia da semana válido.`); | ||
} | ||
} | ||
|
||
export async function dia_semana_abreviado( | ||
numero_dia: number, | ||
caixa_alta: boolean, | ||
caixa_baixa: boolean | ||
): Promise<string> { | ||
const dias: string[] = ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']; | ||
|
||
if (numero_dia > 0 && numero_dia < 8) { | ||
let dia: string = dias[numero_dia - 1]; | ||
|
||
if (caixa_alta) { | ||
dia = dia.toUpperCase(); | ||
} else if (caixa_baixa) { | ||
dia = dia.toLowerCase(); | ||
} | ||
|
||
return dia; | ||
} else { | ||
throw new Error(`'${numero_dia}' não corresponde a um dia da semana válido.`); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
export * from './matematica'; | ||
export * from './calendario' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,197 @@ | ||
import { | ||
dia_mes_atual, | ||
dia_semana_abreviado, | ||
dia_semana_atual, | ||
dia_semana_completo, | ||
dia_semana_curto, | ||
mes_atual, | ||
ano_atual, | ||
hora_atual, | ||
minuto_atual, | ||
milisegundo_atual, | ||
segundo_atual, | ||
} from '../../fontes/bibliotecas/calendario'; | ||
describe('Biblioteca Calendario', () => { | ||
describe('Dia do Mês Atual', () => { | ||
it('Trivial', async () => { | ||
const dataAtual = new Date(); | ||
const diaEsperado = dataAtual.getDate(); | ||
const resultado = await dia_mes_atual(); | ||
expect(resultado).toBe(diaEsperado); | ||
}); | ||
}); | ||
describe('Dia da Semana Atual', () => { | ||
it('Trivial', async () => { | ||
const dataAtual = new Date(); | ||
let diaEsperado = dataAtual.getDay() + 1; | ||
if (diaEsperado === 7) diaEsperado = 0; | ||
const resultado = await dia_semana_atual(); | ||
expect(resultado).toBe(diaEsperado); | ||
}); | ||
}); | ||
|
||
describe('Mês Atual', () => { | ||
it('Trivial', async () => { | ||
const dataAtual = new Date(); | ||
const mesEsperado = dataAtual.getMonth() + 1; | ||
const resultado = await mes_atual(); | ||
expect(resultado).toBe(mesEsperado); | ||
}); | ||
}); | ||
|
||
describe('Ano Atual', () => { | ||
it('Trivial', async () => { | ||
const dataAtual = new Date(); | ||
const anoEsperado = dataAtual.getFullYear(); | ||
const resultado = await ano_atual(); | ||
expect(resultado).toBe(anoEsperado); | ||
}); | ||
}); | ||
describe('Hora Atual', () => { | ||
it('Formato 24 horas', async () => { | ||
const dataAtual = new Date(); | ||
const horaEsperada = dataAtual.getHours(); | ||
const resultado = await hora_atual(false); | ||
expect(resultado).toBe(horaEsperada); | ||
}); | ||
|
||
it('Formato 12 horas', async () => { | ||
const dataAtual = new Date(); | ||
let horaEsperada = dataAtual.getHours() % 12; | ||
if (horaEsperada === 0) { | ||
horaEsperada = 12; | ||
} | ||
const resultado = await hora_atual(true); | ||
expect(resultado).toBe(horaEsperada); | ||
}); | ||
}); | ||
describe('Minuto Atual', () => { | ||
it('Trivial', async () => { | ||
const dataAtual = new Date(); | ||
const minutoEsperado = dataAtual.getMinutes(); | ||
const resultado = await minuto_atual(); | ||
expect(resultado).toBe(minutoEsperado); | ||
}); | ||
}); | ||
|
||
describe('Segundo Atual', () => { | ||
it('Trivial', async () => { | ||
const dataAtual = new Date(); | ||
const segundoEsperado = dataAtual.getSeconds(); | ||
const resultado = await segundo_atual(); | ||
expect(resultado).toBe(segundoEsperado); | ||
}); | ||
}); | ||
|
||
describe('Milissegundo Atual', () => { | ||
it('Trivial', async () => { | ||
const dataAtual = new Date(); | ||
const milissegundoEsperado = dataAtual.getMilliseconds(); | ||
const resultado = await milisegundo_atual(); | ||
expect(resultado).toBe(milissegundoEsperado); | ||
}); | ||
}); | ||
describe('Dia da Semana Completo', () => { | ||
it('Trivial', async () => { | ||
const numeroDia = 1; | ||
const caixaAlta = false; | ||
const caixaBaixa = false; | ||
const resultado = await dia_semana_completo(numeroDia, caixaAlta, caixaBaixa); | ||
expect(resultado).toBe('Domingo'); | ||
}); | ||
|
||
it('Caixa alta', async () => { | ||
const numeroDia = 4; | ||
const caixaAlta = true; | ||
const caixaBaixa = false; | ||
const resultado = await dia_semana_completo(numeroDia, caixaAlta, caixaBaixa); | ||
expect(resultado).toBe('QUARTA-FEIRA'); | ||
}); | ||
|
||
it('Caixa baixa', async () => { | ||
const numeroDia = 6; | ||
const caixaAlta = false; | ||
const caixaBaixa = true; | ||
const resultado = await dia_semana_completo(numeroDia, caixaAlta, caixaBaixa); | ||
expect(resultado).toBe('sexta-feira'); | ||
}); | ||
|
||
it('Falha - Dia invalido', async () => { | ||
const numeroDia = 10; | ||
const caixaAlta = false; | ||
const caixaBaixa = false; | ||
await expect(dia_semana_completo(numeroDia, caixaAlta, caixaBaixa)).rejects.toThrow( | ||
`'${numeroDia}' não corresponde a um dia da semana válido.` | ||
); | ||
}); | ||
}); | ||
|
||
describe('Dia da Semana Curto', () => { | ||
it('Trivial', async () => { | ||
const numeroDia = 1; | ||
const caixaAlta = false; | ||
const caixaBaixa = false; | ||
const resultado = await dia_semana_curto(numeroDia, caixaAlta, caixaBaixa); | ||
expect(resultado).toBe('Domingo'); | ||
}); | ||
|
||
it('Caixa alta', async () => { | ||
const numeroDia = 4; | ||
const caixaAlta = true; | ||
const caixaBaixa = false; | ||
const resultado = await dia_semana_curto(numeroDia, caixaAlta, caixaBaixa); | ||
expect(resultado).toBe('QUARTA'); | ||
}); | ||
|
||
it('Caixa baixa', async () => { | ||
const numeroDia = 6; | ||
const caixaAlta = false; | ||
const caixaBaixa = true; | ||
const resultado = await dia_semana_curto(numeroDia, caixaAlta, caixaBaixa); | ||
expect(resultado).toBe('sexta'); | ||
}); | ||
|
||
it('Falha - Dia invalido', async () => { | ||
const numeroDia = 10; | ||
const caixaAlta = false; | ||
const caixaBaixa = false; | ||
await expect(dia_semana_curto(numeroDia, caixaAlta, caixaBaixa)).rejects.toThrow( | ||
`'${numeroDia}' não corresponde a um dia da semana válido.` | ||
); | ||
}); | ||
}); | ||
describe('Dia da Semana Abreviado', () => { | ||
it('Trivial', async () => { | ||
const numeroDia = 1; | ||
const caixaAlta = false; | ||
const caixaBaixa = false; | ||
const resultado = await dia_semana_abreviado(numeroDia, caixaAlta, caixaBaixa); | ||
expect(resultado).toBe('Dom'); | ||
}); | ||
|
||
it('Caixa alta', async () => { | ||
const numeroDia = 4; | ||
const caixaAlta = true; | ||
const caixaBaixa = false; | ||
const resultado = await dia_semana_abreviado(numeroDia, caixaAlta, caixaBaixa); | ||
expect(resultado).toBe('QUA'); | ||
}); | ||
|
||
it('Caixa baixa', async () => { | ||
const numeroDia = 6; | ||
const caixaAlta = false; | ||
const caixaBaixa = true; | ||
const resultado = await dia_semana_abreviado(numeroDia, caixaAlta, caixaBaixa); | ||
expect(resultado).toBe('sex'); | ||
}); | ||
|
||
it('Falha - Dia invalido', async () => { | ||
const numeroDia = 10; | ||
const caixaAlta = false; | ||
const caixaBaixa = false; | ||
await expect(dia_semana_abreviado(numeroDia, caixaAlta, caixaBaixa)).rejects.toThrow( | ||
`'${numeroDia}' não corresponde a um dia da semana válido.` | ||
); | ||
}); | ||
}); | ||
}); |