# Re: [PHP] Calendar Problem

```At 4:08 PM -0400 8/11/09, Robert Cummings wrote:
```
```tedd wrote:
```
`Hi gang:`
```
I want to show the dates for all Fridays +-30 days from a specific date.

```
For example, given today's date (8/11/2009) the Fridays that fall +-30 days are July 17, July 24, July 31, Aug 7, Aug 14, Aug 21, Aug 28, and Sept 4.
```
I'm curious, how would you guys solve this?
```
```
<?php

\$fridays = array();
for( \$i = -30; \$i <= 30; \$i++ )
{
\$mod = \$i < 0 ? \$i : '+'.\$i;

\$time = strtotime( \$mod.' day' );

if( date( 'D', \$time ) == 'Fri' )
{
\$fridays[] = date( 'Y-m-d', \$time );
}
}

print_r( \$fridays );

?>

Cheers,
Rob.
```
```
Rob:

That's slick -- you never let me down with your simplicity and creativity.

```
My solution was to find the next Friday and then cycle through +-28 days (four weeks) from that date, like so:
```
<?php
\$fridays = array();

for( \$i = 1; \$i <= 7; \$i++ )
{
\$time = strtotime( \$i . ' day' );
if( date( 'D', \$time ) == 'Fri' )
{
\$start = 28 - \$i;
\$end = 28 + \$i;
}
}

for( \$i = -\$start; \$i <= \$end; \$i += 7 )
{
\$time = strtotime( \$i . ' day' );
\$fridays[] = date( 'Y-m-d', \$time );
}

print_r( \$fridays );
?>

```
Your solution had 61 iterations (for loop) while mind had only 21, so mine's a bit faster. Here's the comparison:
```
http://php1.net/b/fridays/

But I'll use your solution -- it's more elegant.

Thanks for the code,

tedd

--
-------
http://sperling.com  http://ancientstones.com  http://earthstones.com

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

```