Primeiro e Ultimo dia da semana e do mes corrente

Delphi

25/07/2006

Salve pessoal do forum!!!
Estou precisando saber qual a data do primeiro e ultimo dia da semana corrente ... e a mesma coisa com o mes. Vou dar um exemplo hoje é dia 25/07/2006 entao ficaria assim:

Semana:

Primeiro dia da semana: Domingo
Data de Domingo: 23/07/2006 <-- Preciso desta data

Ultimo dia da semana: Sabado
Data de Sabado: 29/07/2006 <-- Preciso desta data

-----------------------------------------------------------------------------


Mes

Primeiro dia do mes: Sabado
Data de Domingo: 01/07/2006 <-- Preciso desta data

Ultimo dia do mes: Segunda
Data de Sabado: 31/07/2006 <-- Preciso desta data


Espero que eu tenha expressado bem minha duvida, fico no aguardo.
valewww


Mmoreira

Mmoreira

Curtidas 0

Respostas

Massuda

Massuda

25/07/2006

Acho que o jeito mais fácil é converter sua data para um TDateTime; daí...
uses
  SysUtils,
...

var
  DT: TDateTime;
  X: TDateTime;
  D, M, A: Word;
  I: Integer;
...
  DT := ...sua...data...

  // extrai dia/mes/ano (talvez você já tenha isso separado)
  DecodeDate(DT, A, M, D);

  // primeiro dia do mês
  X := EncodeDate(A, M, 1);

  // ultimo dia do mês
  X := EncodeDate(A, M, MonthDays[IsLeapYear(A)][M]);

  // primeiro dia da semana
  I := DayOfWeek(DT);
  X := DT - (I - 1); // último domingo em relação a DT

  // último dia da semana
  I := DayOfWeek(DT);
  X := DT + (7 - I); // próximo sábado em relação a DT



GOSTEI 0
Night_man

Night_man

25/07/2006

ae...

utilize a unit dateUtils

Primeiro dia da semana: Domingo
Data de Domingo: 23/07/2006 <-- Preciso desta data
StartOfTheWeek(Data)

Ultimo dia da semana: Sabado
Data de Sabado: 29/07/2006 <-- Preciso desta data
StartOfTheWeek(Data)

Primeiro dia do mes: Sabado
Data de Domingo: 01/07/2006 <-- Preciso desta data
StartOfTheMonth(Data)

Ultimo dia do mes: Segunda
Data de Sabado: 31/07/2006 <-- Preciso desta data
StartOfTheMonth(Data)


date eh um datetime com a data deseja, hoje por exemplo


GOSTEI 0
Joaoshi

Joaoshi

25/07/2006

Colega,

PrimeiroDiaDoMes.Text := DateToStr(StartOfTheMonth(date));
UltimoDiaDoMes.Text := DateToStr(endOfTheMonth(date));

DomingoDaSemana.Text := DateToStr( StartOftheWeek(date)-1 );
SabadoDaSemana.Text := DateToStr( StartOftheWeek(date)+5 );

Espero ter ajudado.


GOSTEI 0
Mmoreira

Mmoreira

25/07/2006

BLZ PESSOAL ... ERA ISSO MESMO QUE EU ESTAVA PRECISANDO, FICO MUITO AGRADECIDO A TODOS.
VALEW!!!!


GOSTEI 0
Massuda

Massuda

25/07/2006

utilize a unit dateUtils
Nem lembrei disso! As versões mais antigas do Delphi não tem DateUtils, mas é bem mais simples para quem tem isso à disposição.


GOSTEI 0
POSTAR