Nøkkelord kreativitet , php , tips & triks
Ofte kan det være kjekt å vite hvilke dager som er helligdager (så kalte røddager). Etter å ha letet lenge på nettet etter webservices eller lignende for å hente dette fant jeg til slutt ut at jeg måtte lage noe selv. Det var rett og slett ikke noe å finne der ute på verdensveven.
Så i den anledning lagde jeg en enkel php-kode for å hente helligdager for gitt år. Det er i utgangspunktet veldig enkelt, da helligdagene i Norge bestemmes nesten utelukket av påsken. Siden PHP har en funksjon for å finne ut når siste søndagen i påsken er, gjør dette bare alt til et enkelt regnestykke.
Under ser du koden som jeg lagde for å putte alle helligdagene i et array. Koden er per dags dato veldig rotette, da den er den koden jeg skrev når jeg drev å testet det. En penere kode kommer om ikke så alt for lenge.
<?php
class norwegianholidays
{
function createTimestamp( $day, $month, $year )
{
return mktime( 00, 00, 00, $month, $day, $year );
}
function fetchNorwegianHolidays( $year )
{
$first_easter = easter_date( $year );
$first_easter_day = date ('d-m-Y', $first_easter);
list( $first_day, $first_month, $first_year ) = split( '[-]', $first_easter_day );
$sunday_before_sunday = mktime(00, 00, 00, $first_month, $first_day-7, $first_year );
$friday_before_sunday = mktime(00, 00, 00, $first_month, $first_day-2, $first_year );
$thursday_before_sunday = mktime(00, 00, 00, $first_month, $first_day-3, $first_year );
$second_easterday = mktime(00, 00, 00, $first_month, $first_day+1, $first_year );
$kristi = mktime(00, 00, 00, $first_month, $first_day+39, $first_year );
$first_pins = mktime(00, 00, 00, $first_month, $first_day+49, $first_year );
$second_pins = mktime(00, 00, 00, $first_month, $first_day+50, $first_year );
list( $sbs_d, $sbs_m, $sbs_y ) = split( '[-]', date( 'd-m-Y', $sunday_before_sunday ) );
list( $tbs_d, $tbs_m, $tbs_y ) = split( '[-]', date( 'd-m-Y', $thursday_before_sunday ) );
list( $fbs_d, $fbs_m, $fbs_y ) = split( '[-]', date( 'd-m-Y', $friday_before_sunday ) );
list( $fe_d, $fe_m, $fe_y) = split( '[-]', date( 'd-m-Y', $first_easter ) );
list( $se_d, $se_m, $se_y ) = split( '[-]', date( 'd-m-Y', $second_easterday ) );
list( $k_d, $k_m, $k_y ) = split( '[-]', date( 'd-m-Y', $kristi ) );
list( $fp_d, $fp_m, $fp_y ) = split( '[-]', date( 'd-m-Y', $first_pins ) );
list( $sp_d, $sp_m, $sp_y ) = split( '[-]', date( 'd-m-Y', $second_pins ) );
$holiday_array = array();
$holiday_array['info'] = array();
$holiday_array['info']['Description'] = 'Norwegian holidays';
$holiday_array['info']['Author'] = 'Anders Sandvik Berre';
$holiday_array['info']['AuthorEmail'] = 'anders@berremedia.no';
$holiday_array['info']['Created'] = '2009-01-16';
$holiday_array['info']['Updated'] = '2009-01-16';
$holiday_array['info']['Version'] = '0.1';
$holiday_array['info']['Year'] = $year;
$holiday_array['days'] = array();
$holiday_array['days'][] = array(
'Name' => 'Første nyttårsdag',
'EnglishName' => 'First Day of the year',
'Day' => '01',
'Month' => '01',
'Timestamp' => $this->createTimestamp( 1, 1, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Palmesøndag',
'EnglishName' => 'Palm SunDay',
'Day' => $sbs_d,
'Month' => $sbs_m,
'Timestamp' => $this->createTimestamp( $sbs_d, $sbs_m, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Skjærtorsdag',
'EnglishName' => '',
'Day' => $tbs_d,
'Month' => $tbs_m,
'Timestamp' => $this->createTimestamp( $tbs_d, $tbs_m, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Langfredag',
'EnglishName' => 'Good FriDay',
'Day' => $fbs_d,
'Month' => $fbs_m,
'Timestamp' => $this->createTimestamp( $fbs_d, $fbs_m, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Første påskedag',
'EnglishName' => 'Easter Day',
'Day' => $fe_d,
'Month' => $fe_m,
'Timestamp' => $this->createTimestamp( $fe_d, $fe_m, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Andre påskedag',
'EnglishName' => 'Second Day of easter',
'Day' => $se_d,
'Month' => $se_m,
'Timestamp' => $this->createTimestamp( $se_d, $se_m, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Arbeidernes internasjonale kampdag',
'EnglishName' => 'Workers international Day',
'Day' => '01',
'Month' => '05',
'Timestamp' => $this->createTimestamp( 1, 5, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Grunnlovsdag',
'EnglishName' => 'Constitution Day',
'Day' => 17,
'Month' => '05',
'Timestamp' => $this->createTimestamp( 17, 5, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Kristi himmelfartsdag',
'EnglishName' => '',
'Day' => $k_d,
'Month' => $k_m,
'Timestamp' => $this->createTimestamp( $k_d, $k_m, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Første pinsedag',
'EnglishName' => 'Pentecost',
'Day' => $fp_d,
'Month' => $fp_m,
'Timestamp' => $this->createTimestamp( $fp_d, $fp_m, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Andre pinsedag',
'EnglishName' => '',
'Day' => $sp_d,
'Month' => $sp_m,
'Timestamp' => $this->createTimestamp( $sp_d, $sp_m, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Første juledag',
'EnglishName' => 'Christmas Day',
'Day' => 25,
'Month' => 12,
'Timestamp' => $this->createTimestamp( 25, 12, $year )
);
$holiday_array['days'][] = array(
'Name' => 'Andre juledag',
'EnglishName' => '',
'Day' => 26,
'Month' => 12,
'Timestamp' => $this->createTimestamp( 26, 12, $year )
);
$holiday_array['Changelog'] = array();
$holiday_array['Changelog'][] = array(
'Date' => '2009-01-16',
'Author' => 'Anders Sandvik Berre',
'AuthorEmail' => 'anders@berremedia.no',
'Changes' => 'Creation' );
return $holiday_array;
}
}
?>
<?php
include_once( 'norwegianholidays.php' );
$nh = new norwegianholidays();
$list_of_holidays = $nh->fetchNorwegianHolidays( date('Y') );
?>
08. mars 2009 @ 18:29
haQD5H <a href="http://kskcdxaysael.com/">kskcdxaysael</a>, [url=http://yvzegxgjqmpt.com/]yvzegxgjqmpt[/url], [link=http://zwkncntprubb.com/]zwkncntprubb[/link], http://sdqoexrawiyo.com/
27. januar 2009 @ 14:50
Hehe. Det er vel for særlig interesserte dette ja.
Kuult bilde forresten ;)
27. januar 2009 @ 14:12
Steiki Bæra, det der skjønner jeg ikke så mye av.. Joda, litt... men, noduls på php/programmering/biler/fly og matte.. og sikkert tusen ting til.