<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Calculating the difference between two dates or timestamps</title>
	<atom:link href="http://www.jds.net.au/tech-tips/difference-between-dates/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jds.net.au/tech-tips/difference-between-dates/</link>
	<description>Expert consulting services with HP Software</description>
	<lastBuildDate>Tue, 08 Jun 2010 15:08:25 +1000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>By: Stuart Moncrieff</title>
		<link>http://www.jds.net.au/tech-tips/difference-between-dates/#comment-7269</link>
		<dc:creator>Stuart Moncrieff</dc:creator>
		<pubDate>Wed, 16 Sep 2009 10:36:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.jds.net.au/?p=968#comment-7269</guid>
		<description>Happy to help. Good luck with your load testing. :)

Cheers,
Stuart.</description>
		<content:encoded><![CDATA[<p>Happy to help. Good luck with your load testing. :)</p>
<p>Cheers,<br />
Stuart.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anustup Ray</title>
		<link>http://www.jds.net.au/tech-tips/difference-between-dates/#comment-7267</link>
		<dc:creator>Anustup Ray</dc:creator>
		<pubDate>Wed, 16 Sep 2009 09:22:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.jds.net.au/?p=968#comment-7267</guid>
		<description>Hi,

Thank you  very much for this. I have now (with a little modification) created a script which will read &amp; get the dates from a .csv file instead of getting the values declared directly in VuGen. The advantage is that we can put in an entire list of working dates extraced by excel and read the file. So this takes care of the problem of no of years.We can have the list as long as we want.( I have put it for 10 yrs.)

Many Thanks once again.

Anustup Ray</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Thank you  very much for this. I have now (with a little modification) created a script which will read &amp; get the dates from a .csv file instead of getting the values declared directly in VuGen. The advantage is that we can put in an entire list of working dates extraced by excel and read the file. So this takes care of the problem of no of years.We can have the list as long as we want.( I have put it for 10 yrs.)</p>
<p>Many Thanks once again.</p>
<p>Anustup Ray</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stuart Moncrieff</title>
		<link>http://www.jds.net.au/tech-tips/difference-between-dates/#comment-7125</link>
		<dc:creator>Stuart Moncrieff</dc:creator>
		<pubDate>Fri, 11 Sep 2009 23:51:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.jds.net.au/?p=968#comment-7125</guid>
		<description>So, you are really looking for a C function just like the &lt;strong&gt;NETWORKDAYS(start_date, end_date, holidays)&lt;/strong&gt; function that is available in Excel.

I had a quick look for available libraries and couldn&#039;t find anything, so I whipped up a quick and dirty function that should be good enough, providing you only want to calculate the number of working days over a small number of years.

Here is the function:
&lt;pre lang=&quot;C&quot; line=&quot;1&quot;&gt;
Action()
{
	lr_output_message(&quot;Number of working days between the dates is: %d&quot;, number_of_working_days(&quot;2009-06-03&quot;, &quot;2009-09-04&quot;));
	return 0;
}


/* 
Returns the number of working days between two dates.
Arguments
 - start_date: Date to calculate from in format yyyy-mm-dd. E.g. 2009-0
 - end_date: End date in format yyy-mm-dd. 
Returns number of days on success. On failure, function will raise lr_error_message and return -1.
BUGS: if you use an invalid date like 2009-02-31, then this function will return a number of working days as if it were a real date.
*/
int number_of_working_days(const char* start_date, const char* end_date) {
  /* This is a list of working days (Monday-Friday) excluding Victorian public holidays (taken from 
       http://www.vic.gov.au/Victorian-Public-Holiday-Dates.html). It is easiest to generate this list
       yourself using Excel and the WEEKDAY function.
     Note that declaring working_days[][] = {whatever} will work in some compilers, but not in VuGen. */
  const char working_days[][11] = {
    &quot;2009-01-02&quot;, &quot;2009-01-05&quot;, &quot;2009-01-06&quot;, &quot;2009-01-07&quot;, &quot;2009-01-08&quot;, &quot;2009-01-09&quot;, &quot;2009-01-12&quot;, &quot;2009-01-13&quot;, &quot;2009-01-14&quot;, &quot;2009-01-15&quot;, &quot;2009-01-16&quot;, &quot;2009-01-19&quot;, &quot;2009-01-20&quot;, &quot;2009-01-21&quot;, &quot;2009-01-22&quot;, &quot;2009-01-23&quot;, &quot;2009-01-27&quot;, &quot;2009-01-28&quot;, &quot;2009-01-29&quot;, &quot;2009-01-30&quot;, 
    &quot;2009-02-02&quot;, &quot;2009-02-03&quot;, &quot;2009-02-04&quot;, &quot;2009-02-05&quot;, &quot;2009-02-06&quot;, &quot;2009-02-09&quot;, &quot;2009-02-10&quot;, &quot;2009-02-11&quot;, &quot;2009-02-12&quot;, &quot;2009-02-13&quot;, &quot;2009-02-16&quot;, &quot;2009-02-17&quot;, &quot;2009-02-18&quot;, &quot;2009-02-19&quot;, &quot;2009-02-20&quot;, &quot;2009-02-23&quot;, &quot;2009-02-24&quot;, &quot;2009-02-25&quot;, &quot;2009-02-26&quot;, &quot;2009-02-27&quot;, 
    &quot;2009-03-02&quot;, &quot;2009-03-03&quot;, &quot;2009-03-04&quot;, &quot;2009-03-05&quot;, &quot;2009-03-06&quot;, &quot;2009-03-10&quot;, &quot;2009-03-11&quot;, &quot;2009-03-12&quot;, &quot;2009-03-13&quot;, &quot;2009-03-16&quot;, &quot;2009-03-17&quot;, &quot;2009-03-18&quot;, &quot;2009-03-19&quot;, &quot;2009-03-20&quot;, &quot;2009-03-23&quot;, &quot;2009-03-24&quot;, &quot;2009-03-25&quot;, &quot;2009-03-26&quot;, &quot;2009-03-27&quot;, &quot;2009-03-30&quot;, &quot;2009-03-31&quot;,
    &quot;2009-04-01&quot;, &quot;2009-04-02&quot;, &quot;2009-04-03&quot;, &quot;2009-04-06&quot;, &quot;2009-04-07&quot;, &quot;2009-04-08&quot;, &quot;2009-04-09&quot;, &quot;2009-04-14&quot;, &quot;2009-04-15&quot;, &quot;2009-04-16&quot;, &quot;2009-04-17&quot;, &quot;2009-04-20&quot;, &quot;2009-04-21&quot;, &quot;2009-04-22&quot;, &quot;2009-04-23&quot;, &quot;2009-04-24&quot;, &quot;2009-04-27&quot;, &quot;2009-04-28&quot;, &quot;2009-04-29&quot;, &quot;2009-04-30&quot;,
    &quot;2009-05-01&quot;, &quot;2009-05-04&quot;, &quot;2009-05-05&quot;, &quot;2009-05-06&quot;, &quot;2009-05-07&quot;, &quot;2009-05-08&quot;, &quot;2009-05-11&quot;, &quot;2009-05-12&quot;, &quot;2009-05-13&quot;, &quot;2009-05-14&quot;, &quot;2009-05-15&quot;, &quot;2009-05-18&quot;, &quot;2009-05-19&quot;, &quot;2009-05-20&quot;, &quot;2009-05-21&quot;, &quot;2009-05-22&quot;, &quot;2009-05-25&quot;, &quot;2009-05-26&quot;, &quot;2009-05-27&quot;, &quot;2009-05-28&quot;, &quot;2009-05-29&quot;,
    &quot;2009-06-01&quot;, &quot;2009-06-02&quot;, &quot;2009-06-03&quot;, &quot;2009-06-04&quot;, &quot;2009-06-05&quot;, &quot;2009-06-09&quot;, &quot;2009-06-10&quot;, &quot;2009-06-11&quot;, &quot;2009-06-12&quot;, &quot;2009-06-15&quot;, &quot;2009-06-16&quot;, &quot;2009-06-17&quot;, &quot;2009-06-18&quot;, &quot;2009-06-19&quot;, &quot;2009-06-22&quot;, &quot;2009-06-23&quot;, &quot;2009-06-24&quot;, &quot;2009-06-25&quot;, &quot;2009-06-26&quot;, &quot;2009-06-29&quot;, &quot;2009-06-30&quot;,
    &quot;2009-07-01&quot;, &quot;2009-07-02&quot;, &quot;2009-07-03&quot;, &quot;2009-07-06&quot;, &quot;2009-07-07&quot;, &quot;2009-07-08&quot;, &quot;2009-07-09&quot;, &quot;2009-07-10&quot;, &quot;2009-07-13&quot;, &quot;2009-07-14&quot;, &quot;2009-07-15&quot;, &quot;2009-07-16&quot;, &quot;2009-07-17&quot;, &quot;2009-07-20&quot;, &quot;2009-07-21&quot;, &quot;2009-07-22&quot;, &quot;2009-07-23&quot;, &quot;2009-07-24&quot;, &quot;2009-07-27&quot;, &quot;2009-07-28&quot;, &quot;2009-07-29&quot;, &quot;2009-07-30&quot;, &quot;2009-07-31&quot;,
    &quot;2009-08-03&quot;, &quot;2009-08-04&quot;, &quot;2009-08-05&quot;, &quot;2009-08-06&quot;, &quot;2009-08-07&quot;, &quot;2009-08-10&quot;, &quot;2009-08-11&quot;, &quot;2009-08-12&quot;, &quot;2009-08-13&quot;, &quot;2009-08-14&quot;, &quot;2009-08-17&quot;, &quot;2009-08-18&quot;, &quot;2009-08-19&quot;, &quot;2009-08-20&quot;, &quot;2009-08-21&quot;, &quot;2009-08-24&quot;, &quot;2009-08-25&quot;, &quot;2009-08-26&quot;, &quot;2009-08-27&quot;, &quot;2009-08-28&quot;, &quot;2009-08-31&quot;,
    &quot;2009-09-01&quot;, &quot;2009-09-02&quot;, &quot;2009-09-03&quot;, &quot;2009-09-04&quot;, &quot;2009-09-07&quot;, &quot;2009-09-08&quot;, &quot;2009-09-09&quot;, &quot;2009-09-10&quot;, &quot;2009-09-11&quot;, &quot;2009-09-14&quot;, &quot;2009-09-15&quot;, &quot;2009-09-16&quot;, &quot;2009-09-17&quot;, &quot;2009-09-18&quot;, &quot;2009-09-21&quot;, &quot;2009-09-22&quot;, &quot;2009-09-23&quot;, &quot;2009-09-24&quot;, &quot;2009-09-25&quot;, &quot;2009-09-28&quot;, &quot;2009-09-29&quot;, &quot;2009-09-30&quot;,
    &quot;2009-10-01&quot;, &quot;2009-10-02&quot;, &quot;2009-10-05&quot;, &quot;2009-10-06&quot;, &quot;2009-10-07&quot;, &quot;2009-10-08&quot;, &quot;2009-10-09&quot;, &quot;2009-10-12&quot;, &quot;2009-10-13&quot;, &quot;2009-10-14&quot;, &quot;2009-10-15&quot;, &quot;2009-10-16&quot;, &quot;2009-10-19&quot;, &quot;2009-10-20&quot;, &quot;2009-10-21&quot;, &quot;2009-10-22&quot;, &quot;2009-10-23&quot;, &quot;2009-10-26&quot;, &quot;2009-10-27&quot;, &quot;2009-10-28&quot;, &quot;2009-10-29&quot;, &quot;2009-10-30&quot;,
    &quot;2009-11-02&quot;, &quot;2009-11-04&quot;, &quot;2009-11-05&quot;, &quot;2009-11-06&quot;, &quot;2009-11-09&quot;, &quot;2009-11-10&quot;, &quot;2009-11-11&quot;, &quot;2009-11-12&quot;, &quot;2009-11-13&quot;, &quot;2009-11-16&quot;, &quot;2009-11-17&quot;, &quot;2009-11-18&quot;, &quot;2009-11-19&quot;, &quot;2009-11-20&quot;, &quot;2009-11-23&quot;, &quot;2009-11-24&quot;, &quot;2009-11-25&quot;, &quot;2009-11-26&quot;, &quot;2009-11-27&quot;, &quot;2009-11-30&quot;, 
    &quot;2009-12-01&quot;, &quot;2009-12-02&quot;, &quot;2009-12-03&quot;, &quot;2009-12-04&quot;, &quot;2009-12-07&quot;, &quot;2009-12-08&quot;, &quot;2009-12-09&quot;, &quot;2009-12-10&quot;, &quot;2009-12-11&quot;, &quot;2009-12-14&quot;, &quot;2009-12-15&quot;, &quot;2009-12-16&quot;, &quot;2009-12-17&quot;, &quot;2009-12-18&quot;, &quot;2009-12-21&quot;, &quot;2009-12-22&quot;, &quot;2009-12-23&quot;, &quot;2009-12-24&quot;, &quot;2009-12-29&quot;, &quot;2009-12-30&quot;, &quot;2009-12-31&quot;};
  int i;
  int rc;
  int year, month, day;
  int start_date_position = 0; // the position of the start date in the working_days array.
  int end_date_position = 0;
  const int TOTAL_DAYS = sizeof(working_days)/11; // The total number of days in the working_days array.

  // Check that input is valid
  rc = sscanf(start_date, &quot;%4d-%2d-%2d&quot;, &amp;year, &amp;month, &amp;day);
  if ((rc != 3) &#124;&#124;
	  (year &lt; 2009) &#124;&#124; (year &gt; 2009) &#124;&#124;
	  (month &lt; 1) &#124;&#124; (month &gt; 12) &#124;&#124;
	  (day &lt; 1) &#124;&#124; (day &gt; 31)) {
    lr_error_message(&quot;Start date (%s) is invalid or out of range.&quot;, start_date);
    return -1;
  }
  rc = sscanf(end_date, &quot;%4d-%2d-%2d&quot;, &amp;year, &amp;month, &amp;day);
  if ((rc != 3) &#124;&#124;
	  (year &lt; 2009) &#124;&#124; (year &gt; 2009) &#124;&#124;
	  (month &lt; 1) &#124;&#124; (month &gt; 12) &#124;&#124;
	  (day &lt; 1) &#124;&#124; (day &gt; 31)) {
	lr_error_message(&quot;End date (%s) is invalid or out of range.&quot;, end_date);
	return -1;
  }
  if (strcmp(start_date, end_date) &gt; 0) {
    lr_error_message(&quot;Start date (%s) must occur after end date (%s)&quot;, start_date, end_date);
    return -1;
  }
  
  // Find the position of the start date (or next working day)
  for (i=0; i&lt;TOTAL_DAYS; i++) {
	if (strcmp(working_days[i], start_date) &gt;= 0) {
	  start_date_position = i;
	  break;
	}
  }

  // Find the position of the end date (or next working day)
  for (i=start_date_position; i&lt;TOTAL_DAYS; i++) {
	if (strcmp(working_days[i], end_date) &gt;= 0) {
	  end_date_position = i;
	  break;
	}
  }  

  return (end_date_position - start_date_position);
}
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>So, you are really looking for a C function just like the <strong>NETWORKDAYS(start_date, end_date, holidays)</strong> function that is available in Excel.</p>
<p>I had a quick look for available libraries and couldn&#8217;t find anything, so I whipped up a quick and dirty function that should be good enough, providing you only want to calculate the number of working days over a small number of years.</p>
<p>Here is the function:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
</pre></td><td class="code"><pre class="c" style="font-family:monospace;">Action<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	lr_output_message<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Number of working days between the dates is: %d&quot;</span><span style="color: #339933;">,</span> number_of_working_days<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;2009-06-03&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-04&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #808080; font-style: italic;">/* 
Returns the number of working days between two dates.
Arguments
 - start_date: Date to calculate from in format yyyy-mm-dd. E.g. 2009-0
 - end_date: End date in format yyy-mm-dd. 
Returns number of days on success. On failure, function will raise lr_error_message and return -1.
BUGS: if you use an invalid date like 2009-02-31, then this function will return a number of working days as if it were a real date.
*/</span>
<span style="color: #993333;">int</span> number_of_working_days<span style="color: #009900;">&#40;</span><span style="color: #993333;">const</span> <span style="color: #993333;">char</span><span style="color: #339933;">*</span> start_date<span style="color: #339933;">,</span> <span style="color: #993333;">const</span> <span style="color: #993333;">char</span><span style="color: #339933;">*</span> end_date<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #808080; font-style: italic;">/* This is a list of working days (Monday-Friday) excluding Victorian public holidays (taken from 
       http://www.vic.gov.au/Victorian-Public-Holiday-Dates.html). It is easiest to generate this list
       yourself using Excel and the WEEKDAY function.
     Note that declaring working_days[][] = {whatever} will work in some compilers, but not in VuGen. */</span>
  <span style="color: #993333;">const</span> <span style="color: #993333;">char</span> working_days<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000dd;">11</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #ff0000;">&quot;2009-01-02&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-05&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-06&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-07&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-08&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-09&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-12&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-13&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-14&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-15&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-16&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-19&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-20&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-21&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-22&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-23&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-27&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-28&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-29&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-01-30&quot;</span><span style="color: #339933;">,</span> 
    <span style="color: #ff0000;">&quot;2009-02-02&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-03&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-04&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-05&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-06&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-09&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-10&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-11&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-12&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-13&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-16&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-17&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-18&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-19&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-20&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-23&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-24&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-25&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-26&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-02-27&quot;</span><span style="color: #339933;">,</span> 
    <span style="color: #ff0000;">&quot;2009-03-02&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-03&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-04&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-05&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-06&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-10&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-11&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-12&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-13&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-16&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-17&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-18&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-19&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-20&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-23&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-24&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-25&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-26&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-27&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-30&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-03-31&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">&quot;2009-04-01&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-02&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-03&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-06&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-07&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-08&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-09&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-14&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-15&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-16&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-17&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-20&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-21&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-22&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-23&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-24&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-27&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-28&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-29&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-04-30&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">&quot;2009-05-01&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-04&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-05&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-06&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-07&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-08&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-11&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-12&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-13&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-14&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-15&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-18&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-19&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-20&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-21&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-22&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-25&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-26&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-27&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-28&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-05-29&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">&quot;2009-06-01&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-02&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-03&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-04&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-05&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-09&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-10&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-11&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-12&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-15&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-16&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-17&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-18&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-19&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-22&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-23&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-24&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-25&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-26&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-29&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-06-30&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">&quot;2009-07-01&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-02&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-03&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-06&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-07&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-08&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-09&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-10&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-13&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-14&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-15&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-16&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-17&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-20&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-21&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-22&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-23&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-24&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-27&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-28&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-29&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-30&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-07-31&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">&quot;2009-08-03&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-04&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-05&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-06&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-07&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-10&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-11&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-12&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-13&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-14&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-17&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-18&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-19&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-20&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-21&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-24&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-25&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-26&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-27&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-28&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-08-31&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">&quot;2009-09-01&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-02&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-03&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-04&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-07&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-08&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-09&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-10&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-11&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-14&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-15&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-16&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-17&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-18&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-21&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-22&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-23&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-24&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-25&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-28&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-29&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-09-30&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">&quot;2009-10-01&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-02&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-05&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-06&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-07&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-08&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-09&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-12&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-13&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-14&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-15&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-16&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-19&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-20&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-21&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-22&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-23&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-26&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-27&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-28&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-29&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-10-30&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #ff0000;">&quot;2009-11-02&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-04&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-05&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-06&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-09&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-10&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-11&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-12&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-13&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-16&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-17&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-18&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-19&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-20&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-23&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-24&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-25&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-26&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-27&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-11-30&quot;</span><span style="color: #339933;">,</span> 
    <span style="color: #ff0000;">&quot;2009-12-01&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-02&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-03&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-04&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-07&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-08&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-09&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-10&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-11&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-14&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-15&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-16&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-17&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-18&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-21&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-22&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-23&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-24&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-29&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-30&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;2009-12-31&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
  <span style="color: #993333;">int</span> i<span style="color: #339933;">;</span>
  <span style="color: #993333;">int</span> rc<span style="color: #339933;">;</span>
  <span style="color: #993333;">int</span> year<span style="color: #339933;">,</span> month<span style="color: #339933;">,</span> day<span style="color: #339933;">;</span>
  <span style="color: #993333;">int</span> start_date_position <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// the position of the start date in the working_days array.</span>
  <span style="color: #993333;">int</span> end_date_position <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
  <span style="color: #993333;">const</span> <span style="color: #993333;">int</span> TOTAL_DAYS <span style="color: #339933;">=</span> <span style="color: #993333;">sizeof</span><span style="color: #009900;">&#40;</span>working_days<span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #0000dd;">11</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// The total number of days in the working_days array.</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Check that input is valid</span>
  rc <span style="color: #339933;">=</span> sscanf<span style="color: #009900;">&#40;</span>start_date<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;%4d-%2d-%2d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>year<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>month<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>day<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>rc <span style="color: #339933;">!=</span> <span style="color: #0000dd;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
	  <span style="color: #009900;">&#40;</span>year <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">2009</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span>year <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">2009</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
	  <span style="color: #009900;">&#40;</span>month <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span>month <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">12</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
	  <span style="color: #009900;">&#40;</span>day <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span>day <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">31</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    lr_error_message<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Start date (%s) is invalid or out of range.&quot;</span><span style="color: #339933;">,</span> start_date<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  rc <span style="color: #339933;">=</span> sscanf<span style="color: #009900;">&#40;</span>end_date<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;%4d-%2d-%2d&quot;</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>year<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>month<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>day<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>rc <span style="color: #339933;">!=</span> <span style="color: #0000dd;">3</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
	  <span style="color: #009900;">&#40;</span>year <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">2009</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span>year <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">2009</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
	  <span style="color: #009900;">&#40;</span>month <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span>month <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">12</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span>
	  <span style="color: #009900;">&#40;</span>day <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span>day <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">31</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	lr_error_message<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;End date (%s) is invalid or out of range.&quot;</span><span style="color: #339933;">,</span> end_date<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>strcmp<span style="color: #009900;">&#40;</span>start_date<span style="color: #339933;">,</span> end_date<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    lr_error_message<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Start date (%s) must occur after end date (%s)&quot;</span><span style="color: #339933;">,</span> start_date<span style="color: #339933;">,</span> end_date<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #339933;">-</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Find the position of the start date (or next working day)</span>
  <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>TOTAL_DAYS<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>strcmp<span style="color: #009900;">&#40;</span>working_days<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> start_date<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;=</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	  start_date_position <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
	  <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Find the position of the end date (or next working day)</span>
  <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span>start_date_position<span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>TOTAL_DAYS<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>strcmp<span style="color: #009900;">&#40;</span>working_days<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> end_date<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;=</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	  end_date_position <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
	  <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>  
&nbsp;
  <span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span>end_date_position <span style="color: #339933;">-</span> start_date_position<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
	</item>
	<item>
		<title>By: Anustup Ray</title>
		<link>http://www.jds.net.au/tech-tips/difference-between-dates/#comment-7114</link>
		<dc:creator>Anustup Ray</dc:creator>
		<pubDate>Fri, 11 Sep 2009 12:08:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.jds.net.au/?p=968#comment-7114</guid>
		<description>Hi Thanks for your reply. 

I cannot really use the working days option because I cant use the date time parameter. The problem being that this parameter will allow me to look at the present time and offset it with a given number of days or working days.

What was really looking for is a function where we can get the number of working days from any given date range. I have worked out the logic for any date range greater than or equal to 7 days but the problem is with when the difference is less than 7 days. There can be 1 Saturday only, one Sunday only, or a Saturday and a Sunday. The only way this can be done is if can find out the weekdays for those 6 days and then negate the Saturdays and Sundays.</description>
		<content:encoded><![CDATA[<p>Hi Thanks for your reply. </p>
<p>I cannot really use the working days option because I cant use the date time parameter. The problem being that this parameter will allow me to look at the present time and offset it with a given number of days or working days.</p>
<p>What was really looking for is a function where we can get the number of working days from any given date range. I have worked out the logic for any date range greater than or equal to 7 days but the problem is with when the difference is less than 7 days. There can be 1 Saturday only, one Sunday only, or a Saturday and a Sunday. The only way this can be done is if can find out the weekdays for those 6 days and then negate the Saturdays and Sundays.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stuart Moncrieff</title>
		<link>http://www.jds.net.au/tech-tips/difference-between-dates/#comment-7067</link>
		<dc:creator>Stuart Moncrieff</dc:creator>
		<pubDate>Wed, 09 Sep 2009 21:27:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.jds.net.au/?p=968#comment-7067</guid>
		<description>You probably want to use the Date/Time parameter type instead of a function like this. The Date/Time parameter allows you to specify &quot;working days only&quot;.

If you wanted to also exclude holidays, you could make an array of holiday dates, and write some code that would compare the value in your Date/Time parameter with the dates in your exclusion list. If there was a match, you could call lr_advance_param() to get the next date value.</description>
		<content:encoded><![CDATA[<p>You probably want to use the Date/Time parameter type instead of a function like this. The Date/Time parameter allows you to specify &#8220;working days only&#8221;.</p>
<p>If you wanted to also exclude holidays, you could make an array of holiday dates, and write some code that would compare the value in your Date/Time parameter with the dates in your exclusion list. If there was a match, you could call lr_advance_param() to get the next date value.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anustup Ray</title>
		<link>http://www.jds.net.au/tech-tips/difference-between-dates/#comment-7060</link>
		<dc:creator>Anustup Ray</dc:creator>
		<pubDate>Wed, 09 Sep 2009 12:40:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.jds.net.au/?p=968#comment-7060</guid>
		<description>This is a very good function but I wanted to alter this to give me only the working days excluding the weekendsand then maybe extending it a bit further to negate the bank holidays. Any ideas?</description>
		<content:encoded><![CDATA[<p>This is a very good function but I wanted to alter this to give me only the working days excluding the weekendsand then maybe extending it a bit further to negate the bank holidays. Any ideas?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
