Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save fokosun/e8b7fb49c94551efcadc151c5237415c to your computer and use it in GitHub Desktop.
Save fokosun/e8b7fb49c94551efcadc151c5237415c to your computer and use it in GitHub Desktop.
<?php
// 26-March-2001
// 15-August-2001
// Wednesday
// 1-January-2000
// 22-February-2000
// Monday
$firstDate = "26-March-2001";
$secondDate = "15-August-2001";
$dayOfWeek = "Wednesday";
test($firstDate, $secondDate, $dayOfWeek);
function test($firstDate, $secondDate, $dayOfWeek) {
$dates = dateRange($firstDate, $secondDate, $dayOfWeek);
$arrContextOptions = array(
"ssl" => array(
"verify_peer" => false,
"verify_peer_name" => false,
),
);
if(!empty($dates)) {
foreach($dates as $date) {
$theResponse = file_get_contents('https://jsonmock.hackerrank.com/api/stocks/search/?date=' . $date, false, stream_context_create($arrContextOptions));
$response = json_decode($theResponse);
if(isset($response->data) && !empty($response->data)) {
foreach($response->data as $data) {
if($data->date === $date) {
echo $data->date . " " . $data->open . " " . $data->close;
echo "\n";
}
}
}
}
}
}
function dateRange($dateFromString, $dateToString, $day) {
$dateFrom = new \DateTime($dateFromString);
$dateTo = new \DateTime($dateToString);
$day = new \DateTime($day);
$dates = [];
if ($dateFrom > $dateTo) {
return $dates;
}
while ($dateFrom <= $dateTo) {
if($dateFrom->format('N') === $day->format('N')) {
$dates[] = $dateFrom->format('j-F-Y');
}
$dateFrom->modify('+1 day');
}
return $dates;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment