Antes de poder tirar partido do poder de algumas funções de Data e Hora, precisa entender como o MS Excel armazena datas e horas. Independentemente de como tenha formatado uma célula para exibir uma data ou hora, o MS Excel sempre as armazenará da mesma forma.
Como o MS Excel armazena as Datas e Horas:
O MS Excel armazena datas e horas, como um número que representa o número de dias desde 0-Jan-1900, mais uma parte fracionária de um dia de 24 horas: ddddd.tttttt. Isso é chamado de Serial Date (data de série) ou de Serial Date-Time (Série de Data-Tempo).
Datas
A porção inteira do número, ddddd, representa o número de dias desde 0-Jan-1900. Por exemplo, a data 19-Jan-2000 é armazenado como 36.544, 36.544 dias já se passaram desde 0-Jan-1900. O número 1 representa 1-Jan-1900. Entenda-se que o número 0 não representa 31-Dez-1899. Se usar a função mês com a data 0, retornará Janeiro e não Dezembro. Além disso, a função retornará ANO como 1900 e não como 1899.
Na verdade, esse número é maior do que o número real de dias. Isso ocorre porque o MS Excel comporta-se como se a data de 29-Fev-1900 tivesse existido. O ano de 1900 não foi um ano bissexto (ano de 2000 é um ano bissexto). No MS Excel, um dia após 28-Fev-1900 é 29-Fev-1900. Na realidade, o dia depois de 28-Fev-1900 é 01-Mar-1900. Isso não é um Bug (erro), na verdade, foi desenhado assim. O MS Excel funciona dessa maneira porque este realmente era um erro no Lotus 123. Quando o MS Excel foi desenvolvido e introduzido no mercado, o Lotus 123 tinha quase todo o mercado de software de planilha eletrônica. A Microsoft decidiu continuar com o bug do Lotus, a fim de torná-lo totalmente compatível. Os usuários que passaram do Lotus 123 para o MS Excel não tiveram de fazer quaisquer ajustes e/ou alterações em seus dados. Enquanto todas as datas forem até 01-Mar-1900, esta não deve ser de nenhuma preocupação.
No MS Excel temos uma função que retorna um valor formatado...Veremos aqui algumas formas para retornar a formatação de Datas:
Format ( expressão, [ formato, [ firstdayofweek, [firstweekofyear] ] ] )
expressão é o valor para o formato.
formato é opcional. É o formato para aplicar a expressão. Podemos definir nosso próprio formato ou usar um dos formatos nomeados que o MS Excel tem pré-definido, tais como: General Date Exibe a data com base nas configurações do seu sistema. Long Date Mostra a data com base no Long Date configurado no sistema Medium Date Exibe a data com base no Medium Date configurado no sistema Short Date Mostra a data com base no Short Date configurado no sistema Long Time Exibe a data com base no Long Time configurado no sistema Medium Time Mostra a data com base no Medium Time configurado no sistema Short Time Exibe a data com base no Short Time configurado no sistema firstdayofweek [primeirodiadasemana] é opcional. É um valor que especifica o primeiro dia da semana. Se este parâmetro for omitido, a função Format assume que o Domingo é o primeiro dia da semana. Este parâmetro pode ser um dos seguintes valores: Constante Valor Explanação vbUseSystem 0 Usa a configuração da API NLS. VbSunday 1 Domingo (É o default, se o parâmetro for omitido). vbMonday 2 Segunda-feira. vbTuesday 3 Terça-feira. vbWednesday 4 Quarta-feira. vbThursday 5 Quinta-feira. vbFriday 6 Sexta-feira. vbSaturday 7 Sábado. firstweekofyear [primeirasemanadoano] é opcional. É um valor que especifica a primeira semana do ano. Se este parâmetro for omitido, a função Format assume que a semana que contém 1 de janeiro é a primeira semana do ano. Este parâmetro pode ser um dos seguintes valores: Constante Valor Explanação vbUseSystem 0 Usa a configuração da API NLS. vbFirstJan1 1 A semana que contém 1º de Janeiro. vbFirstFourDays 2 A primeira semana que contiver 4 dias no Ano. vbFirstFullWeek 3 A primeira semana cheia do Ano. Aplica-se ao: MS Office Excel 2007 MS Office Excel 2003 MS Office Excel XP MS Office Excel 2000 Exemplo: Format (#05/02/2007#, "Short Date") Retornará: '05/02/2007' Format (#05/02/2007#, "Long Date") Retornará: 'Februry 05, 2007' Format (#05/02/2007#, "yyyy/mm/dd") Retornará: '2007/05/02' Codificação VBA: Function TitleCaption() ' Author: Date: Contact: URL: ' André Bernardes 23/03/2010 09:17 bernardess@gmail.com http://al-bernardes.sites.uol.com.br/ ' Atualiza o título no FORM. ' Listening: GreensLeeves - Mozart Let Me.Caption = ":. " & Format (Now(), "Long Date") & " - " & Right (Now(), 8) End Function Algumas Funções com Datas e Horas: Overtime Hours In Timesheets Quarter, Determining From Date Rounding Times Thanksgiving, Calculation Of Date Times, Adding And Subtracting Times And Working Hours, Between Two Dates Times, Quick Entry Times, Rounding Timesheets, Working With Regular And Overtime Hours Time Zones
Week Numbers, Excel and ISO Weekday, Counting Between Dates
Weekday, First And Last Of Month Weekday, Nth Day Of Month (VBA) Weekday, Nth Day Of Month (Formula) Weekdays, Creating Series Of Weeks, Difference Between Dates Year, First Monday Of Years, Entering Two Digit Years
Date Intervals, Formulas For Dates, Adding And Subtracting Dates, Differences Between Dates, Distributing Across Months Or Years Dates, Excel Serial Format Dates, Finding With VBA .Find Method Dates, Quick Entry Dates, Two Digit Years Day Of Week, Nth Day Of Week (VBA) Day Of Week, Nth Day Of Week In A Month (Formula)Day Of Week, Returning Nth Day Of Week In A Year (Formula)
Days In Month, First And Last Days In Month DATEDIF Function Degrees, Minutes, And Seconds Easter, Calculation Of Date Holidays, Calculation Of Dates Julian Dates
Last Weekday Of Month Leap Year, Determining
Age, Calculating Birthdays And Age
HolidaysVBA Procedures For Dates And Times
Worksheet Functions For Dates And TimesDistributing Dates Over Intervals
Nenhum comentário:
Postar um comentário