473,396 Members | 1,757 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

the penultimate week and last week of data for each month

I would like to return data from the last 2 weeks of each given month
in Javascript, but in 2 formats.

So, the penultimate week (Monday to Sunday) and the last week (Monday
to ??)

I'm not sure if it can be done, but all help welcomed.

E.g. I have December and would like to see the last 2 weeks.. So this
doesnt mean the last 15 days. What i mean by this is...

Sometimes a Week will cross over into 2 months, where it finishes on
Tuesday and starts on Wednesday, like November 2004 for example.

With the November 2004 example, means there are 5 weeks in November..
so i would like to see the data within the 4th week (Monday to Sunday)
and the 5th week (Monday to Tuesday). Of course for every month of the
year.
Is this possible??

I look forward to hearing your thoughts.
SimonC

Jul 23 '05 #1
13 3557
"SimonC" <si******@yahoo.co.uk> wrote in message
news:11**********************@z14g2000cwz.googlegr oups.com...
I would like to return data from the last 2 weeks of each given month
in Javascript, but in 2 formats.

So, the penultimate week (Monday to Sunday) and the last week (Monday
to ??)

I'm not sure if it can be done, but all help welcomed.

E.g. I have December and would like to see the last 2 weeks.. So this
doesnt mean the last 15 days. What i mean by this is...

Sometimes a Week will cross over into 2 months, where it finishes on
Tuesday and starts on Wednesday, like November 2004 for example.

With the November 2004 example, means there are 5 weeks in November..
so i would like to see the data within the 4th week (Monday to Sunday)
and the 5th week (Monday to Tuesday). Of course for every month of the
year.
Is this possible??

I look forward to hearing your thoughts.
SimonC


Will this help? Watch for word-wrap.

Option Explicit
'*
'* Declare Constants
'*
Const cVBS = "penuweek.vbs"
Const cYER = 2004
'*
'* Declare Variables
'*
Dim arrDAT(12,1)
Dim intDAT
Dim strDAT
Dim intDOW
Dim intMON
Dim strYER
strYER = cYER
'*
'* 12 Months
'*
For intMON = 1 To 12
'*
'* First day of next month
'*
strDAT = DateSerial(strYER,intMON+1,1)
'*
'* Last day of this month
'*
strDAT = DateAdd("d",-1,strDAT)
'*
'* Day of week
'*
intDOW = DatePart("w",strDAT,2)
'*
'* Date of Monday before last
'*
If intDOW = 1 Then intDOW = 8
intDAT = (intDOW + 6) * -1
strDAT = DateAdd("d",intDAT,strDAT)
arrDAT(intMON,0) = strDAT
'*
'* Date of Sunday two weeks later
'*
strDAT = DateAdd("d",13,strDAT)
arrDAT(intMON,1) = strDAT
Next
'*
'* Results
'*
strDAT = ""
For intMON = 1 To 12
strDAT = strDAT & intMON & ". "
strDAT = strDAT & arrDAT(intMON,0) & " : "
strDAT = strDAT & arrDAT(intMON,1) & vbCrLf
Next
MsgBox strDAT,vbInformation,cVBS
Jul 23 '05 #2
McKirahan wrote:
"SimonC" <si******@yahoo.co.uk> wrote in message
news:11**********************@z14g2000cwz.googlegr oups.com...
I would like to return data from the last 2 weeks of each given month
in Javascript, but in 2 formats.
[...]
Will this help? Watch for word-wrap.

Since this is a JavaScript forum, and the OP has explicitly asked for
JavaScript, why would 'this' help?
Option Explicit
'*
'* Declare Constants

[...]

Perhaps if you re-write it in an appropriate language...

--
Zif
Jul 23 '05 #3
"Zifud" <zi***@hotmail.com.com> wrote in message
news:41**********************@per-qv1-newsreader-01.iinet.net.au...
McKirahan wrote:
"SimonC" <si******@yahoo.co.uk> wrote in message
news:11**********************@z14g2000cwz.googlegr oups.com...
I would like to return data from the last 2 weeks of each given month
in Javascript, but in 2 formats.

[...]

Will this help? Watch for word-wrap.


Since this is a JavaScript forum, and the OP has explicitly asked for
JavaScript, why would 'this' help?
Option Explicit
'*
'* Declare Constants

[...]

Perhaps if you re-write it in an appropriate language...

--
Zif


The OP did ask "Is this possible??" -- "this" (at least) shows that it is...
You're right, of course. I post to multiple groups and sometimes when I
think of a solution I forget to customize it to the group.
Jul 23 '05 #4
SimonC wrote:
I would like to return data from the last 2 weeks of each given month
in Javascript, but in 2 formats.

So, the penultimate week (Monday to Sunday) and the last week (Monday
to ??)

I'm not sure if it can be done, but all help welcomed.

E.g. I have December and would like to see the last 2 weeks.. So this
doesnt mean the last 15 days. What i mean by this is...

Sometimes a Week will cross over into 2 months, where it finishes on
Tuesday and starts on Wednesday, like November 2004 for example.

With the November 2004 example, means there are 5 weeks in November..
so i would like to see the data within the 4th week (Monday to Sunday)
and the 5th week (Monday to Tuesday). Of course for every month of the
year.
Is this possible??

I look forward to hearing your thoughts.
SimonC


days=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];

// Find the Nth day(Three character string,
// e.g "Thu", or use index [Sun=0, Sat=6])
// of the month (full) of a given year (full)
// To find the first Sunday of April 2004:
// var spring = getNthDayInMonth(1,"Sun","April",2004)
// or spring = getNthDayInMonth(1,0,"April",2004)
// returns "4" (April 4th)
function getNthDayInMonth(N,day,month,year){
day=(getIndex(day,days)>-1)? getIndex(day,days):day;
b=getMonthLength(month,year);
d=7*N - 6 + (7+day-getFirstDayOfMonth(month,year))%7
return d<b? d:"error";
}
See http://mickweb.com/javascript/dates/dateFunctions.html for
supporting functions
Mick
Jul 23 '05 #5
JRS: In article <11**********************@z14g2000cwz.googlegroups .com>
, dated Fri, 31 Dec 2004 03:04:46, seen in news:comp.lang.javascript,
SimonC <si******@yahoo.co.uk> posted :
I would like to return data from the last 2 weeks of each given month
in Javascript, but in 2 formats.
Firstly, beware of American solutions; they have funny ideas about dates
over there, and theirs may not be what you want.
FYI, ISO 8601:2000 weeks are ALWAYS Mon=1 to Sun=7. ISO 8601:2000 does
not define week-of-month (ISO 8601:2004 might, though); but there is an
obvious definition by analogy with week-of-year; a week belongs to that
Calendar Month in which its Thursday lies.

So, the penultimate week (Monday to Sunday) and the last week (Monday
to ??)

I'm not sure if it can be done, but all help welcomed.

E.g. I have December and would like to see the last 2 weeks.. So this
doesnt mean the last 15 days. What i mean by this is...

Sometimes a Week will cross over into 2 months, where it finishes on
Tuesday and starts on Wednesday, like November 2004 for example.

With the November 2004 example, means there are 5 weeks in November..
so i would like to see the data within the 4th week (Monday to Sunday)
and the 5th week (Monday to Tuesday). Of course for every month of the
year.
If the last week ends on the last day of the month, and that is not
Sunday, then are you happy about having days in the following month
before the Monday that starts its first full week?

Is this possible??


Yes, but one must first understand it, and maybe believe it.
AFAICS, your last week starts on the last Monday of the month, which is
easily calculated as the zeroth Monday of the following month, or as
0..6 days before the zeroth of that month; and the previous week starts
7 days earlier.

I think the following fits the case; it will show the desired interval
for the first to the 20th months of 2004. Adapt to suit. Test.

for (j=1; j<20; j++) {
X = new Date(2004, j, 0) ; D = new Date(+X) // D is a copy of X
W = D.getDay() // 0..6 Sun-Sat
D.setDate(D.getDate() - (W+6)%7 - 7) // back 0..6 + 7 days
document.writeln(D, ' \t ', X, '<br>')
}

*** *** *** Read the newsgroup FAQ; see below.

--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4 ©
<URL:http://www.jibbering.com/faq/> JL/RC: FAQ of news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.
Jul 23 '05 #6
JRS: In article <rLbBd.593649$wV.485877@attbi_s54>, dated Fri, 31 Dec
2004 12:38:47, seen in news:comp.lang.javascript, McKirahan
<Ne**@McKirahan.com> posted :
For intMON = 1 To 12
'*
'* First day of next month
'*
strDAT = DateSerial(strYER,intMON+1,1)
'*
'* Last day of this month
'*
strDAT = DateAdd("d",-1,strDAT)

(a) For the second line, why not just strDat = strDat-1 ??

(b) For both, why not strDAT = DateSerial(strYER, intMON+1, 0) ??
You should learn more about the languages that you use before you
presume to be able to write efficient algorithms; and you should note
that java != VB.

--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 MIME. ©
Web <URL:http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms
PAS EXE etc : <URL:http://www.merlyn.demon.co.uk/programs/> - see 00index.htm
Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm critdate.htm etc.
Jul 23 '05 #7

Dr John Stockton wrote:
JRS: In article <rLbBd.593649$wV.485877@attbi_s54>, dated Fri, 31 Dec 2004 12:38:47, seen in news:comp.lang.javascript, McKirahan
<Ne**@McKirahan.com> posted :
For intMON = 1 To 12
'*
'* First day of next month
'*
strDAT = DateSerial(strYER,intMON+1,1)
'*
'* Last day of this month
'*
strDAT = DateAdd("d",-1,strDAT)

(a) For the second line, why not just strDat = strDat-1 ??

(b) For both, why not strDAT = DateSerial(strYER, intMON+1, 0)

??

You should learn more about the languages that you use before you
presume to be able to write efficient algorithms; and you should note
that java != VB.

--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 MIME. © Web <URL:http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms PAS EXE etc : <URL:http://www.merlyn.demon.co.uk/programs/> - see 00index.htm Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm

critdate.htm etc.

--------------------------------------------------------------------
Thanks guys for all the help. I am starting to understand some of it
more now. As you're probably aware, im no JavaScript expert... Quite
the opposite.

I have tried the scripts posted on here, but they're not quite working
in the way i would like.

I am actually trying to produce this data against a report that i have
written against a Database. The tool is called "Brio" (like Crystal
reports). So i have my columns of data. Now, the data i would like to
get is as described above, but against a column name (field) named as
"NoOfOrders" (this is a date field in the following format: 01/01/2004
00:00:00)

Just as an example of what i have already in the report in terms of
Javascript, below is a simple script i created.
--------
DayNo = new Date(NoOfOrders); weekday=DayNo.getDay()
--------

Again, all help on this would be great and thanks again for the current
input.

Cheers...
SimonC

Jul 23 '05 #8
JRS: In article <HB********************@twister.nyroc.rr.com>, dated
Fri, 31 Dec 2004 15:53:11, seen in news:comp.lang.javascript, Mick White
<mw***********@rochester.rr.com> posted :
days=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];

// Find the Nth day(Three character string,
// e.g "Thu", or use index [Sun=0, Sat=6])
// of the month (full) of a given year (full)
// To find the first Sunday of April 2004:
// var spring = getNthDayInMonth(1,"Sun","April",2004)
// or spring = getNthDayInMonth(1,0,"April",2004)
// returns "4" (April 4th)
function getNthDayInMonth(N,day,month,year){
day=(getIndex(day,days)>-1)? getIndex(day,days):day;
b=getMonthLength(month,year);
d=7*N - 6 + (7+day-getFirstDayOfMonth(month,year))%7
return d<b? d:"error";
}
See http://mickweb.com/javascript/dates/dateFunctions.html for
supporting functions

For any given month, there is a value of N, 4 or 5, that should select
the very last day; e.g. 2005-01-31 is the Fifth Monday of this month.
But I would expect your b=getMonthLength(month,year) to be 31 for this
month, which the code seems to show as giving an error message for d=31.
Have I misunderstood?

If a Date Object is to be generated from the result, ISTM easier and
safer to confirm that getMonth() is as it should be. For speed, you
could use something like
return ( d < 29 || d <= getMonthLength ) ? d : 0
so that the expensive getMonthLength is only called in a few cases.

In practice, the month-length can only matter for N=5; and, as the
outside world has spotted this, the 5th X-day is rarely called for,
except when specified to mean the last X-day. The latter can easily be
obtained as the zeroth X-day of the following month.

Your function, as shown, pollutes the namespace by stomping on the
previous value of globals b & d.

--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 MIME. ©
Web <URL:http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms
PAS EXE etc : <URL:http://www.merlyn.demon.co.uk/programs/> - see 00index.htm
Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm critdate.htm etc.
Jul 23 '05 #9
JRS: In article <11*********************@f14g2000cwb.googlegroups. com>,
dated Mon, 3 Jan 2005 00:56:27, seen in news:comp.lang.javascript,
SimonC <si******@yahoo.co.uk> posted :
Now, the data i would like to
get is as described above, but against a column name (field) named as
"NoOfOrders" (this is a date field in the following format: 01/01/2004
00:00:00)
Not a good example date. Better to choose a date after the 12th of its
month; your example is compatible with each of the customary UK & US
formats. Better still to use, say, 2004/01/17 or 2004-01-17.
Just as an example of what i have already in the report in terms of
Javascript, below is a simple script i created.
--------
DayNo = new Date(NoOfOrders); weekday=DayNo.getDay()
--------


If NoOfOrders means anything like Number of Orders, ISTM unlikely
(unless orders are received at exactly one per millisecond, starting at
1970-00-01 00:00:00.001 GMT) that it can be so converted to a reasonable
DayNo. Note that getDay returns 0..6; to get standard ISO/EU/UK day
numbering, that 0 must become a 7.

See below.

--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4 ©
<URL:http://www.jibbering.com/faq/> JL/RC: FAQ of news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.
Jul 23 '05 #10
Dr John Stockton wrote:
For any given month, there is a value of N, 4 or 5, that should select
the very last day; e.g. 2005-01-31 is the Fifth Monday of this month.
But I would expect your b=getMonthLength(month,year) to be 31 for this
month, which the code seems to show as giving an error message for d=31.
Have I misunderstood?
Thanks for the observation, I'll revisit the code, now that I have a few
years of js coding under my belt, I'll optimise the code.

If a Date Object is to be generated from the result, ISTM easier and
safer to confirm that getMonth() is as it should be. For speed, you
could use something like
return ( d < 29 || d <= getMonthLength ) ? d : 0
so that the expensive getMonthLength is only called in a few cases.
A good point, since February is the only non-conformer.


In practice, the month-length can only matter for N=5; and, as the
outside world has spotted this, the 5th X-day is rarely called for,
except when specified to mean the last X-day. The latter can easily be
obtained as the zeroth X-day of the following month.
Another timesaver, I hadn't made this logical leap (N can be only 0-4 or 5)


Your function, as shown, pollutes the namespace by stomping on the
previous value of globals b & d.

Ugly, isn't it?

Thanks.
Mick
Jul 23 '05 #11
Just to confirm.. NoOfOrders is simple a name, that contains dates of
that particular order. I have extrated this field out of a query and i
am using it inside this current one. You're right.. Ugly it is.

The "NoOfOrders" field is in the format of a Date like this:
"31/01/2005 00:00:00"

I assume that the code that is above, i have to call the "NoOfOrders"
field somewhere within the code to apply it!!?!? Sorry about this, but
i really dont know much Javascript.

Cheers...
SimonC

Jul 23 '05 #12
JRS: In article <WL*******************@twister.nyroc.rr.com>, dated
Tue, 4 Jan 2005 00:51:02, seen in news:comp.lang.javascript, Mick White
<mw***********@rochester.rr.com> posted :
Dr John Stockton wrote:
For any given month, there is a value of N, 4 or 5, that should select
the very last day; e.g. 2005-01-31 is the Fifth Monday of this month.
But I would expect your b=getMonthLength(month,year) to be 31 for this
month, which the code seems to show as giving an error message for d=31.
Have I misunderstood?


Thanks for the observation, I'll revisit the code, now that I have a few
years of js coding under my belt, I'll optimise the code.


Feel free to visit <URL:http://www.merlyn.demon.co.uk/js-date7.htm#NXM>
and thereabouts.

--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4 ©
<URL:http://www.jibbering.com/faq/> JL/RC: FAQ of news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.
Jul 23 '05 #13
JRS: In article <11**********************@z14g2000cwz.googlegroups .com>
, dated Tue, 4 Jan 2005 02:39:38, seen in news:comp.lang.javascript,
SimonC <si******@yahoo.co.uk> posted :

The "NoOfOrders" field is in the format of a Date like this:
"31/01/2005 00:00:00"


Be warned : javascript is liable, even in the UK, to interpret that date
as being FFF, i.e. MM/DD/YYYY - month 31 day 1 of 2005, 2007-07-01.

See sig below.

--
© John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v4.00 IE 4 ©
<URL:http://www.jibbering.com/faq/> JL/RC: FAQ of news:comp.lang.javascript
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.
Jul 23 '05 #14

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: androtech | last post by:
Hello, I'm looking for a function that returns a date range for a specified week number of the year. I'm not able to find functions like this anywhere. Any pointers/help would be much...
2
by: planetthoughtful | last post by:
Hi All, I'm building some reports in Acc97 and using a custom calendar form to allow users to pick dates with which to report. I'm wondering if there's an easy way in code to be able to...
14
by: Tina | last post by:
My employer tracks productivity/performance of clinicians (how much they bill) each week, its averages for the month, and the 6 months. These averages are compared to their expected productivity....
6
by: aarklon | last post by:
Hi folks, I found an algorithm for calculating the day of the week here:- http://www.faqs.org/faqs/calendars/faq/part1/index.html in the section titled 2.5 what day of the week was 2 august...
10
by: Jim | last post by:
I'm sure this has been asked before but I can't find any postings. I have a table that has weekly inspections for multiple buildings. What I need to do is break these down by the week of the...
9
by: AideenWolf | last post by:
Windows XP - Access 2003 I've been researching this for about 3 weeks now and I'm no closer then when I started so any help you all give me will save my hair. I'm VERY new and learning as I go so...
2
by: tasmontique | last post by:
I am working on an access 2002 flight schedule database. I am new to access but have some basic understanding of sql and vb6 code. I have learned a lot from this website. Thanks much Hopefully...
5
by: cssExp | last post by:
the problem is, i have a dynamic database driven site, each data is entered with year, week etc.. 2 months ago assuming I'll create sort option in future i put everything, i.e year, week, hour,...
1
by: guyborn | last post by:
I have been trying to get data from the database from the of the previous month to the second last week of the current month.I only managed to get data from the previous month to today's date. ...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.