Solved

Calculate Number of Days, Excluding Sundays, Between Two Dates

Posted on 2008-06-19
1
2,618 Views
Last Modified: 2013-12-13
I'm using this code to calculate the difference (number of days) between any two dates.
  Both $begin_mk and $end_mk are in YYYY-mm-dd format, like   2008-06-19 .

How could I modify it to exclude Sundays from the calculation?  

For example, if there are 90 calendar days from 2008-01-01 to 2008-03-31 , then I guess I need to:
1) calculate the number of Sundays between those two dates, and
2) subtract the number of Sundays from the total number of days (90, in this case)

How to calculate the number of Sundays between any two dates? Or is there some better, easier way to do this?
$begin_mk = strtotime("$begin"); 
$end_mk = strtotime("$end");
 
$datediff = ( $end_mk > $begin_mk ? ( $end_mk - $begin_mk ) : ( $begin_mk - $end_mk ) );
$days = ( ( $datediff / 3600 ) / 24 );
 $days = $days + 1; // to be inclusive of last date;

Open in new window

0
Comment
Question by:FrankTech
1 Comment
 

Accepted Solution

by:
FrankTech earned 0 total points
ID: 21824609
Well, I finally came up with this.  Anybody have a better or easier way?
<?php
 
// ** Set Beginning and Ending Dates, in YYYY-mm-dd format **
 $begin = '2008-01-01';
 $end = '2008-03-31';
 $begin_mk = strtotime("$begin"); 
 $end_mk = strtotime("$end");
 
// ** Calculate number of Calendar Days between the two dates
 $datediff = ( $end_mk > $begin_mk ? ( $end_mk - $begin_mk ) : ( $begin_mk - $end_mk ) );
 $days = ( ( $datediff / 3600 ) / 24 );
  $days = $days + 1; // to be inclusive of last date;
 
// ** Count days excluding Sundays **
  $iteration = 0; 
  $numDaysExSunday = 0;
for ($i=1; $i<=$days; $i++) {
  $weekday = date("w", strtotime("$begin + $iteration day"));
       echo "$weekday<br>";
     if ($weekday !== '0') {
        $numDaysExSunday++;
     }
  $iteration++; 
}
 
// ** Output number of days excluding Sundays **
echo $numDaysExSunday;
?>

Open in new window

0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
php function to remove a file 31 39
tutorial for ebay api 3 32
Cpanel file manager 8 20
PHP Query return divisible by 3 3 13
Author Note: Since this E-E article was originally written, years ago, formal testing has come into common use in the world of PHP.  PHPUnit (http://en.wikipedia.org/wiki/PHPUnit) and similar technologies have enjoyed wide adoption, making it possib…
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…
The viewer will learn how to dynamically set the form action using jQuery.

816 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now