Author |
Message
|
Ranodip Basu |
Posted: Sun Oct 10, 2004 9:35 pm Post subject: How To Find The Day of Week for A Given Date? |
|
|
 Apprentice
Joined: 23 Sep 2004 Posts: 48
|
Hi,
I am working on WMQI 2.1. Can anybody suggest how to find the day of a given date in ESQL ? Means whether it is Monday or Tuesday or Wednesday ............
Thanks in advance.
Ranodip |
|
Back to top |
|
 |
siliconfish |
Posted: Sun Oct 10, 2004 9:51 pm Post subject: |
|
|
 Master
Joined: 12 Aug 2002 Posts: 203 Location: USA
|
|
Back to top |
|
 |
kirani |
Posted: Sun Oct 10, 2004 10:21 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
With CSD4 of WBIMB you can call a Java method with-in your ESQL code. So you can use built-in Java date functions to do this. _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
Ranodip Basu |
Posted: Mon Oct 11, 2004 12:12 am Post subject: |
|
|
 Apprentice
Joined: 23 Sep 2004 Posts: 48
|
Thanks both of you........I will try your suggestions and let you know............ |
|
Back to top |
|
 |
Ranodip Basu |
Posted: Mon Oct 11, 2004 11:10 pm Post subject: |
|
|
 Apprentice
Joined: 23 Sep 2004 Posts: 48
|
Hi Siliconfish,
I tried the method written in the link given by you.But it working for some cases.
For example it is working for today's date i.e 12-Oct-2004 but failing for 29-Feb-2004.If you plese can provide me some more solutions,then it will help me.
Regards,
Ranodip |
|
Back to top |
|
 |
kirani |
Posted: Tue Oct 12, 2004 8:39 am Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Have you tried the Java solution? _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
Ranodip Basu |
Posted: Fri Oct 15, 2004 3:11 am Post subject: |
|
|
 Apprentice
Joined: 23 Sep 2004 Posts: 48
|
Hi Kirani,
I am extremely sorry to reply you let.I have not tried the Java solution.But what I did,I am taking a date as base - let say 10-Oct-2004(it is sunday).Now I calculating the days difference between the given date (whose days of week to be found) and the base date.
Now I am finding the mod(days difference,7)
If this mod returns 0 then it is sunday,if 1 then monday,if 2 then tuesday.........
But thanks a lot for your information.Frankly speaking I had no idea that java methods can be called within ESQL code.In future definitely it will help me............................
Ranodip |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Oct 15, 2004 5:13 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Ranodip -
I don't think you CAN call Java from ESQL in your version of WMQI. You specifically said you were using 2.1.
The support for calling Java directly from ESQL is only available in the most recent FP4 for version 5. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kirani |
Posted: Fri Oct 15, 2004 8:39 am Post subject: Re: How To Find The Day of Week for A Given Date? |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Ranodip Basu wrote: |
I am working on WMQI 2.1. |
I missed this part.  _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
contactop |
Posted: Thu Nov 04, 2004 9:06 am Post subject: |
|
|
Acolyte
Joined: 26 Jun 2003 Posts: 50
|
can you tell me how to call java code from ESQL. I m using CSD04.
thanks in advance. |
|
Back to top |
|
 |
kirani |
Posted: Thu Nov 04, 2004 10:58 am Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
You can call a java method using CALL statement. For more info please look at ESQL reference manual (Page 117). _________________ Kiran
IBM Cert. Solution Designer & System Administrator - WBIMB V5
IBM Cert. Solutions Expert - WMQI
IBM Cert. Specialist - WMQI, MQSeries
IBM Cert. Developer - MQSeries
|
|
Back to top |
|
 |
nathanw |
Posted: Fri Nov 05, 2004 2:55 am Post subject: |
|
|
 Knight
Joined: 14 Jul 2004 Posts: 550
|
in v 5 on a projetc we used this algorithm
CREATE FUNCTION CurrentDayOfTheWeek(DateInC Char) Returns Char
BEGIN
DECLARE y Int Cast(Substring(DateInC From 9 for 2) as Int);
RETURN Case (Mod(((2 * (3 - Mod((Cast(Substring(DateInC From 7 for 2) as Int)), 4))) +
(Mod((y / 12) + mod(y,12) + (mod(y,12)/ 4), 7)) +
(Case (Cast(Substring(DateInC from 12 for 2) as Int))
when 1 then 0 when 2 then 3 when 3 then 3 when 4 then 6
when 5 then 1 when 6 then 4 when 7 then 6 when 8 then 2
when 9 then 5 when 10 then 0 when 11 then 3 when 12 then 5
End) +
(Mod((Cast(Substring(DateInC from 15 for 2) as Int)), 7))),7 ))
When 0 Then 'Sun' When 1 Then 'Mon'
When 2 Then 'Tue' When 3 Then 'Wed'
When 4 Then 'Thu' When 5 Then 'Fri'
When 6 Then 'Sat' Else'xxx'
End;
END;
looks rubbish i know but this esql works and finds the day based on the system date.
Make sure you understand it beofre going back to V 2.1
N |
|
Back to top |
|
 |
Nigelg |
Posted: Fri Nov 05, 2004 3:28 am Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
It does indeed look rubbish.
I think it would be wonderfully improved by a few new lines and more than a few comments.
What if you leave, and it needs maintaining? How would you do it?
How DOES it work anyway? |
|
Back to top |
|
 |
nathanw |
Posted: Fri Nov 05, 2004 3:45 am Post subject: |
|
|
 Knight
Joined: 14 Jul 2004 Posts: 550
|
thx Nigel
it is based on an algorithm written by lewis carrol years ago
it takes the date and calculates the day simple as that lol
if the result of the calculation comes out to a certain value then it will alocate the day
btw this part of a much large piece of ESQL for calculation of SLAs and expiry based on business days and hours but the first thing it needs is the actual day that we are currently at.
as for maintenance well unless they are going to change th days of the week or number of days in the week then we all are going to have a problem |
|
Back to top |
|
 |
brenner |
Posted: Mon Nov 08, 2004 11:01 pm Post subject: |
|
|
Newbie
Joined: 22 Oct 2004 Posts: 7 Location: IBM Hursley
|
Why not use the EXTRACT function instead of
DECLARE y Int Cast(Substring(DateInC From 9 for 2) as Int);
for example
DECLARE y INT EXTRACT (DAY FROM DateInC); |
|
Back to top |
|
 |
|