FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » How To Find All Weeks First date and Last date?
Show: Today's Messages :: Polls :: Message Navigator
Switch to threaded view of this topic Create a new topic Submit Reply
How To Find All Weeks First date and Last date? [message #174376] Thu, 09 June 2011 12:25 Go to next message
Amit Pawar is currently offline  Amit Pawar
Messages: 1
Registered: June 2011
Karma: 0
Junior Member
Hi,

I want to find All no of week in any month.
And first and last date of that week.

Assume Month is Jan 2011

date in Y-m-d
1st week -> Start date=2011-01-01 End date=2011-01-01
2nd week -> Start date=2011-01-02 End date=2011-01-08
3rd week -> Start date=2011-01-09 End date=2011-01-15
4th week -> Start date=2011-01-16 End date=2011-01-22
5th week -> Start date=2011-01-23 End date=2011-01-29
6th week -> Start date=2011-01-30 End date=2011-01-31
Re: How To Find All Weeks First date and Last date? [message #174388 is a reply to message #174376] Thu, 09 June 2011 19:03 Go to previous messageGo to next message
Luuk is currently offline  Luuk
Messages: 329
Registered: September 2010
Karma: 0
Senior Member
On 09-06-2011 14:25, Amit Pawar wrote:
> Hi,
>
> I want to find All no of week in any month.
> And first and last date of that week.
>
> Assume Month is Jan 2011
>
> date in Y-m-d
> 1st week -> Start date=2011-01-01 End date=2011-01-01
> 2nd week -> Start date=2011-01-02 End date=2011-01-08
> 3rd week -> Start date=2011-01-09 End date=2011-01-15
> 4th week -> Start date=2011-01-16 End date=2011-01-22
> 5th week -> Start date=2011-01-23 End date=2011-01-29
> 6th week -> Start date=2011-01-30 End date=2011-01-31


$d=mktime (0,0,0,1,1,2011);
for ($i=0; $i<35; $i++) {
$x=$d+($i*24*3600);
if (date("w",$x)==0) {
print date("W d-m", $x).date(" d-m\n", $x+(6*24*3600));
}
}

You need to change this in order to get it to work ;)


--
Luuk
Re: How To Find All Weeks First date and Last date? [message #174396 is a reply to message #174376] Fri, 10 June 2011 00:03 Go to previous messageGo to next message
Jerry Stuckle is currently offline  Jerry Stuckle
Messages: 2598
Registered: September 2010
Karma: 0
Senior Member
On 6/9/2011 8:25 AM, Amit Pawar wrote:
> Hi,
>
> I want to find All no of week in any month.
> And first and last date of that week.
>
> Assume Month is Jan 2011
>
> date in Y-m-d
> 1st week -> Start date=2011-01-01 End date=2011-01-01
> 2nd week -> Start date=2011-01-02 End date=2011-01-08
> 3rd week -> Start date=2011-01-09 End date=2011-01-15
> 4th week -> Start date=2011-01-16 End date=2011-01-22
> 5th week -> Start date=2011-01-23 End date=2011-01-29
> 6th week -> Start date=2011-01-30 End date=2011-01-31

First of all, what day does your week start on? Sunday, from the looks
of it, but need to be sure.

Next, most calendars would consider that since Jan 1 is on a Saturday,
that is part of the last week of 2010, and the first week of 2010 would
start on Jan 2.

So first you need to find the first Sunday. This is pretty easy to do by
getting the day of week for 2011-01-01 as a number (1-7 for
Monday-Sunday). See date() for DateTime::format() with the 'N' format.

From there it's a simple matter to get the end of the week by adding 6
days (DateInteral object). You can then get the start of the next week
by either adding 1 day to the end of the week or 7 days to the start
of the previous week.

Not too hard if you look up the DateTime object in the manual. It
contains all the references you need. See
http://us.php.net/manual/en/class.datetime.php.

(Note: adding 60*60*24*7 seconds will be off by one hour for 1/2 the
year if you run Daylight Savings Time in the summer - not necessarily a
problem if you only are interested in dates).

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
Re: How To Find All Weeks First date and Last date? [message #174398 is a reply to message #174396] Fri, 10 June 2011 00:41 Go to previous message
Jeff North is currently offline  Jeff North
Messages: 58
Registered: November 2010
Karma: 0
Member
On Thu, 09 Jun 2011 20:03:30 -0400, in comp.lang.php Jerry Stuckle
<jstucklex(at)attglobal(dot)net>
<isrn11$sg8$1(at)dont-email(dot)me> wrote:

> | On 6/9/2011 8:25 AM, Amit Pawar wrote:
> | > Hi,
> | >
> | > I want to find All no of week in any month.
> | > And first and last date of that week.
> | >
> | > Assume Month is Jan 2011
> | >
> | > date in Y-m-d
> | > 1st week -> Start date=2011-01-01 End date=2011-01-01
> | > 2nd week -> Start date=2011-01-02 End date=2011-01-08
> | > 3rd week -> Start date=2011-01-09 End date=2011-01-15
> | > 4th week -> Start date=2011-01-16 End date=2011-01-22
> | > 5th week -> Start date=2011-01-23 End date=2011-01-29
> | > 6th week -> Start date=2011-01-30 End date=2011-01-31
> |
> | First of all, what day does your week start on? Sunday, from the looks
> | of it, but need to be sure.
> |
> | Next, most calendars would consider that since Jan 1 is on a Saturday,
> | that is part of the last week of 2010, and the first week of 2010 would
> | start on Jan 2.
> |
> | So first you need to find the first Sunday. This is pretty easy to do by
> | getting the day of week for 2011-01-01 as a number (1-7 for
> | Monday-Sunday). See date() for DateTime::format() with the 'N' format.
> |
> | From there it's a simple matter to get the end of the week by adding 6
> | days (DateInteral object). You can then get the start of the next week
> | by either adding 1 day to the end of the week or 7 days to the start
> | of the previous week.
> |
> | Not too hard if you look up the DateTime object in the manual. It
> | contains all the references you need. See
> | http://us.php.net/manual/en/class.datetime.php.
> |
> | (Note: adding 60*60*24*7 seconds will be off by one hour for 1/2 the
> | year if you run Daylight Savings Time in the summer - not necessarily a
> | problem if you only are interested in dates).

Just to add to Jerry's post:
The problem of Daylight Saving Time can be corrected by making sure
that the time is set to midday not midnight i.e.
<?php
$Aday = 60 * 60 * 24;
$dt = strtotime('2011-01-01 12:00:00');
for( $x=0; $x<53; $x++ ) {
echo date ( "W w Y-m-d", $dt )."<br>";
$dt += $Aday * 7;
}
?>
Change the 12:00:00 to 00:00:00 to see what effect the DST has on the
calculations.

The interesting part is that the date() drops a whole day when DST
starts and picks up the correct date when DST ends.
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: hai sweety
Next Topic: Install GD on Windows
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Mon Nov 25 01:50:16 GMT 2024

Total time taken to generate the page: 0.02232 seconds