exemplo
data: 10/04/2006
de 06:00am as 14:00pm - 1º turno
de 14:01pm as 22:00pm - 2º turno
de 22:01pm as 05:59am - 3º turno do dia 11/04/2006
Alguem manja?
VAleu
Moderador: Moderadores


Código: Selecionar todos
HTurno := Vturno(time(), Date())
@ 02,0 say HTurno
Function V_Turno(Hora, Dia)
IF Hora >= '06:00' .AND. Hora <= '14:00'
Return Turno := ´de 06:00am as 14:00pm - 1º turno'
ELSEIF hora >= '14:01' .AND. Hora <= '22:00'
Return Turno := ´de 14:01pm as 22:00pm - 2º turno´
ELSE
Return Turno := ´de 22:01pm as 05:59am - 3º turno do dia ' + Dtoc(dia + 1)
ENDIF
////////////////////
/***
*
* Time.prg
*
* Sample user-defined functions for manipulating time strings
*
* Copyright (c) 1993, Computer Associates International Inc.
* All rights reserved.
*
* NOTE: Compile with /a /m /n /w
*
*/
/***
*
* SecondsAsDays( <nSeconds> ) --> nDays
*
* Convert numeric seconds to days
*
* NOTE: Same as DAYS() in Examplep.prg
*/
FUNCTION SecondsAsDays( nSeconds )
RETURN INT(nSeconds / 86400)
/***
* TimeAsAMPM( <cTime> ) --> cTime
* Convert a time string to 12-hour format
*
* NOTE: Same as AMPM() in Examplep.prg
*/
FUNCTION TimeAsAMPM( cTime )
IF VAL(cTime) < 12
cTime += " am"
ELSEIF VAL(cTime) = 12
cTime += " pm"
ELSE
cTime := STR(VAL(cTime) - 12, 2) + SUBSTR(cTime, 3) + " pm"
ENDIF
RETURN cTime
/***
* TimeAsSeconds( <cTime> ) --> nSeconds
* Convert a time string to number of seconds from midnight
*
* NOTE: Same as SECS() in Examplep.prg
*/
FUNCTION TimeAsSeconds( cTime )
RETURN VAL(cTime) * 3600 + VAL(SUBSTR(cTime, 4)) * 60 +;
VAL(SUBSTR(cTime, 7))
/***
* TimeAsString( <nSeconds> ) --> cTime
* Convert numeric seconds to a time string
*
* NOTE: Same as TSTRING() in Examplep.prg
*/
FUNCTION TimeAsString( nSeconds )
RETURN StrZero(INT(Mod(nSeconds / 3600, 24)), 2, 0) + ":" +;
StrZero(INT(Mod(nSeconds / 60, 60)), 2, 0) + ":" +;
StrZero(INT(Mod(nSeconds, 60)), 2, 0)
/***
* TimeDiff( <cStartTime>, <cEndTime> ) --> cDiffTime
* Return the difference between two time strings in the form hh:mm:ss
*
* NOTE: Same as ELAPTIME() in Examplep.prg
*/
FUNCTION TimeDiff( cStartTime, cEndTime )
ptempo= TimeAsString(IF(cEndTime < cStartTime, 86400 , 0) +;
TimeAsSeconds(cEndTime) - TimeAsSeconds(cStartTime))
RETURN ptempo
FUNCTION TimeDiff2( cStartTime, cEndTime )
ptempo= TimeAsString(IF(cEndTime < cStartTime, 86400 , 0) +;
TimeAsSeconds(cEndTime) - TimeAsSeconds(cStartTime))
RETURN .t.
/***
* TimeIsValid( <cTime> ) --> lValid
* Validate a time string
*
*/
FUNCTION TimeIsValid( cTime )
RETURN VAL(cTime) < 24 .AND. VAL(SUBSTR(cTime, 4)) < 60 .AND.;
VAL(SUBSTR(cTime, 7)) < 60