If com dia da semana e hora
Não conheço muito bem a sintax de If, se ela é parecida com a SE do Excel então tem If E, If Ou, etc. talvez não seja nem a função If que vai me resolver esse problema. Na verdade quero que ele me retorne True ou False dependendo do dia da semana e hora. Por exmplo:
De segunda a quinta de 07:00 hs às 13:00 = True
De quarta à sexta de 17: hs às 22:00 = True
Aos sábados de 00:01 hs às 23:59 = True
Nos outros horário = False
Com faço?
De segunda a quinta de 07:00 hs às 13:00 = True
De quarta à sexta de 17: hs às 22:00 = True
Aos sábados de 00:01 hs às 23:59 = True
Nos outros horário = False
Com faço?
Fariasps
Curtidas 0
Respostas
Drakkar
08/02/2004
Só uma pergunta.. da onde vai vim o dia ta semana e hora? do sistema? de um edit?
GOSTEI 0
Fariasps
08/02/2004
do sistema
a data e a hora ele vai pegar o sistema
uso o Win XP
a data e a hora ele vai pegar o sistema
uso o Win XP
GOSTEI 0
Drakkar
08/02/2004
Aqui está:
Var Resultado: Boolean; begin If ((DayOfWeek(Date()) = 2) and (DayOfWeek(Date()) = 5)) and ((TimeToStr(Time()) >= ´07:00:00.000´) and (TimeToStr(Time()) <= ´13:00:00.000´)) Then //De segunda a quinta de 07:00 hs às 13:00 Begin Resultado:=True End Else Begin If ((DayOfWeek(Date()) = 3) and (DayOfWeek(Date()) = 6) and ((TimeToStr(Time()) >= ´17:00:00.000´) and (TimeToStr(Time()) <= ´22:00:00.000´))) Then //De quarta à sexta de 17: hs às 22:00 Begin Resultado:=True End Else Begin If (DayOfWeek(Date()) = 7) and ((TimeToStr(Time()) >= ´00:01:00.000´) and (TimeToStr(Time()) <= ´23:59:00.000´)) Then //Aos sábados de 00:01 hs às 23:59 Begin Resultado:=True End Else Begin Resultado:=False; End; End; End;
GOSTEI 0
Fabio.hc
08/02/2004
Outra forma é usando o case com if:
function TForm1.Horario:boolean; var Dia:integer; hora:integer; begin Dia:=DayOfTheWeek(date); hora:=HourOf(time); Result:=false; case dia of 1..2: begin if (hora >= 7) and (hora < 13) then Result:=true; end; 3..4: begin if ((hora >= 7) and (hora < 13)) or ((hora >= 17) and (hora < 22)) then Result:=true; end; 5: begin if (hora >= 17) and (hora < 22) then Result:=true; end; 6: Result:=true; end; end;
GOSTEI 0
Drakkar
08/02/2004
Com certeza com case fica mais bonitinho, mas preferi nao usar porque achei que o cara nao entendia de programaçãoe em pascal daí podia complicar mais ainda pro lado dele. hehe
GOSTEI 0
Fabio.hc
08/02/2004
Só uma observação: a diferença de DayOfWeek e DayOfTheWeek.
[b:f6313fde5a]DayOfWeek[/b:f6313fde5a]
[b:f6313fde5a]DayOfTheWeek[/b:f6313fde5a]
[b:f6313fde5a]DayOfWeek[/b:f6313fde5a]
days[1] := ´Sunday´; days[2] := ´Monday´; days[3] := ´Tuesday´; days[4] := ´Wednesday´; days[5] := ´Thursday´; days[6] := ´Friday´; days[7] := ´Saturday´;
[b:f6313fde5a]DayOfTheWeek[/b:f6313fde5a]
DayMonday = 1; DayTuesday = 2; DayWednesday = 3; DayThursday = 4; DayFriday = 5; DaySaturday = 6; DaySunday = 7;
GOSTEI 0
Drakkar
08/02/2004
Só uma observação: a diferença de DayOfWeek e DayOfTheWeek.
[b:e063654f0f]DayOfWeek[/b:e063654f0f]
days[1] := code] ´Sunday´; days[2] := ´Monday´; days[3] := ´Tuesday´; days[4] := ´Wednesday´; days[5] := ´Thursday´; days[6] := ´Friday´; days[7] := ´Saturday´;[/ [b:e063654f0f]DayOfTheWeek[/b:e063654f0f] [code] DayMonday = 1; DayTuesday = 2; DayWednesday = 3; DayThursday = 4; DayFriday = 5; DaySaturday = 6; DaySunday = 7;
É ao contrario..
function DayOfTheWeek(const AValue: TDateTime): Word;
Essa função retorna uma Word, no caso: ´Sunday´, ´Monday´,´Tuesday´, ´Wednesday´,´Thursday´,´Friday´,´Saturday´.
function DayOfWeek(Date: TDateTime): Integer;
Já essa retorna um Integer, de 1 a 7.
GOSTEI 0