Pascal: Día de la semana
Saber el día de la semana que corresponde a una fecha
Lenguaje: Pascal (compilador: Turbo Pascal 7)
Categoría: Fecha y hora
(* Fuente procedente de ErrorDeSintaxis.es *)
(* Saber el día de la semana que corresponde *)
(* a una fecha *)
(* Lenguaje: Pascal *)
(* Compilador: Turbo Pascal 7 *)
(* Nivel: Intermedio *)
(* Disponible desde 17/07/2011 *)
(* Aportado por Nacho *)
(* Autor original: Kelly Small *)
(* Web original: http://www.kd5col.info/swag/DATETIME/0022.PAS.html *)
function LeapYearOffset(M,Y:Word):Integer; Begin if ((Y mod 400 = 0) or ((Y mod 100 <> 0) and (Y mod 4 = 0))) and (M > 2) then LeapYearOffset := 1 else LeapYearOffset := 0 End; Function DaysinMonth(dMonth,dYear:Word):Byte; Begin case dMonth of 1,3,5,7,8,10,12 : DaysInMonth := 31; 4,6,9,11 : DaysInMonth := 30; 2 : DaysInMonth := 28 + LeapYearOffset(3,dYear) End; End; Function FindDayOfWeek(Day, Month, Year: Integer) : Byte; var century, yr, dw: Integer; begin if Month < 3 then begin Inc(Month, 10); Dec(Year); end else Dec(Month, 2); century := Year div 100; yr := year mod 100; dw := (((26 * month - 2) div 10) + day + yr + (yr div 4) + (century div 4) - (2 * century)) mod 7; if dw < 0 then FindDayOfWeek := dw + 7 else FindDayOfWeek := dw; end;