Web resources
>
Calendar >
Day of the week
Day of the week
02 December 2024 is Monday
To calculate which day of the week is, we use three PHP functions:
function AnyDeTraspas($any) To find out if a year is over
function NumeroDiesMes($mes,$any) To know how many days a specific month has
function DiaDeLaSetmana($data) To calculate what day of the week is. This is the main function, which uses the previous two.
Wikipedia: Leap year / Gregorian calendar
function AnyDeTraspas($any) To find out if a year is over
function NumeroDiesMes($mes,$any) To know how many days a specific month has
function DiaDeLaSetmana($data) To calculate what day of the week is. This is the main function, which uses the previous two.
Wikipedia: Leap year / Gregorian calendar
// PHP function to know if it is a leap year
// Return Boolean: true / false/* Author: arnAu bellavista
www.BinariEM.com
Gener 2021 */
function AnyDeTraspas($any){
if($any % 4 == 0){
$secular = substr($any, -2);
if($secular == '00' and $any % 400 != 0){
return false;
}else{
return true;
}
}else{
return false;
}
}
// Cridem la funció i la guardem una variable boleana
$any_de_traspas = AnyDeTraspas('2021');
// PHP Function to know how many days a specific month has
// Retorna el número de diesfunction NumeroDiesMes($mes,$any){
$dies = 0;
if( $mes == 1 or $mes == 3 or $mes == 5 or $mes == 7
or $mes == 8 or $mes == 10 or $mes == 12 ){
$dies = 31;
}else if( $mes == 4 or $mes == 6 or $mes == 9 or $mes == 11 ){
$dies = 30;
}else if($mes == 2){
$any_de_traspas = AnyDeTraspas($any);
if($any_de_traspas){
$dies = 29;
}else{
$dies = 28;
}
}
return $dies;
}
// Main PHP function to know what day of the week is
// Returns a number from 1 to 7 (Monday-Sunday)function DiaDeLaSetmana($data){
list($any,$mes,$dia) = explode('-',$data); // Guardem la data en variables separades
$dies_passats = 0; // Dies que han passat des de la data 1-1-1
/*
El calendari Gregorià funciona per cicles iguals de 400 anys.
L'1 de gener de l'any 1 és dilluns.
De manera que l'1 de gener de l'any 401 també és dilluns. Igual per l'any 801, 1201, 1601, 2001...
*/
// Contem quants anys hi ha des de l'inici del cicle de 400 anys
$any400 = $any;
$any400 = $any % 400;
if($any400 == 0){
$any400 = 400;
}
$anys_falten = $any400 - 1;
// Contem quants dies han passat des de 1-1-1 fins l'any consultat
for($i=1; $i<=$anys_falten; $i++){
// Mirem si és any de traspàs o no per sumar els dies corresponents
$any_traspas = AnyDeTraspas($i);
if($any_traspas){
$dies_passats = $dies_passats + 366; // Sumem un any de traspàs
}else{
$dies_passats = $dies_passats + 365; // Sumem un any
}
}
// Contem els dies que falten fins els mes consultat
for($i=1; $i<$mes; $i++){
$num_dies_mes = NumeroDiesMes($i,$any400);
$dies_passats = $dies_passats + $num_dies_mes;
}
// Contem els dies que falten fins el dia consultat
for($i=0; $i<$dia; $i++){
$dies_passats++;
}
// Mirem a quin dia de la setmana correspon
$dia_setmana = $dies_passats % 7;
if($dia_setmana == 0){ // Si és 0 posem 7 perquè és diumgenge
$dia_setmana = 7;
}
return $dia_setmana;
}
// Return Boolean: true / false
// PHP Function to know how many days a specific month has
// Retorna el número de dies
// Main PHP function to know what day of the week is
// Returns a number from 1 to 7 (Monday-Sunday)