|
Hi, all
I'm glad to receive a lot of advices. Thank you so much indeed.
And I want to explain why I posted such message. This will be a caution for
the programmers (maybe <g>).
I introduced the Zeller's formula as a column of computer tips in my home
page for Japanese programmers. (Of course I know there is a function for
calculation of the day of week in RPG iv.)
Zeller's formula is known as below. There are two types.
(I) (yy2+[yy2/4]+[yy1/4]+[26(mm+1)/10]-(2*yy1)+dd)mod 7
(II) (yyyy+[yyyy/4]-[yyyy/100]+[yyyy/400]+[(2.6*mm)+1.6]+dd) mod 7
(In Jan. and Feb. mm must be 13,14 in the last year).
On March 1st,2000 one visitor asked 'The formula (I) returned a wrong data,
is this a kind of Y2K problem?'
?Y2K? Zeller's formula is an official one, there must be no problem.
I uploaded the EXCEL example and I showed it worked correctly for him.
But, the other visitor asked me again 'Why does (-24) mod 7 come to 4? Please
explain it.'
I was confused.
February 29th,2000 = 99+[99/4]+[19/4]+[26(14+1)/10]-(2*19)+29) mod 7
=(99+24+4+39-38+29)mod 7=(157) mod 7= 3 (=Tuesday)
March 1st,2000 = 00+[00/4]+[20/4]+[26(3+1)/10]-(2*20)+1) mod 7
=(00+00+5+10-40+1)mod 7=(-24) mod 7= 4 (=Wednesday)
Certainly I could get the day of week, so it seemed to work well.
BUT, what was mod(-24,7)=4 ??? I felt it strange.
The RPG code (DIV and MVR) returned -3.(i.e. -24-(-3 *7)=-24+21=-3).
When I saw the help text of the MOD function in Excel, I was surprised.
In the help of mod it says,
MOD(n,d) = n - d*INT(n/d)
<Examples>
MOD(3,2) = 1
MOD(-3,2) = 1 <===
Hey! Why mod(-3,2)=1??? I think it must be -1.
Oh, IIIII Seeeee. INT is in there! Can you see the 'INT' in MOD(n,d) above?
And in the help of INT,it says INT(8.9)=8, INT(-8.9)= -9.
So, now I can see why MOD(-3,2)=1, and MOD(-24,7)=4.
MOD(-3,2)=-3-2*INT(-3/2)=-3-2*INT(-1.5)=-3-2*(-2)=-3+4=1.
MOD(-24,7)=-24-7*INT(-24/7)=-24-7*INT(-3.4)=-24-7*(-4)=-24+28=4.
It still seems a strange thing for me. Can you accept this result?
That's why I posted my message.
After I posted the message, I checked the book of an algorithm of C language,
and I knew there were some functions, named FLOOR,or CEILING.
floor(2.718)=2, floor(-2.718)=-3
ceiling(2.718)=3, ceiling(-2.718)=-2
If these functions are real one, INT behaves like FLOOR.
BTW, what is floor or ceiling for ? I don't know C Language well. I bought
the book of an algorithm of C as my pillow <g>.
Anyway, I use often the EXCEL as a debugging tool (for confirmation of the
result of programs that I made).
And you should pay attention to 'negative numbers in MOD or INT' in EXCEL.
*------------*-------------*--------------*
I'm sorry for my poor English, do you make out what I mean? I'm uncertain of
it. All I can do it here is just a spell-checking.
HTH
Best regards.
On Wed, 01 Mar 2000 21:53:30 +0900
"Tadashi K." <tadashii@tk.airnet.ne.jp> wrote in "int(-8.9)=-9 or -8":
> Hi, all
>
> By Excel functions, int(-8.1)=-9. And %Int in RPGiv is -8.
>
> How can I get -9 same as an Excel function by RPG iv?
> Is which result(-9 or -8) normal for you ?
>
> Tadashi
>
> /* ---------------------------------------------------------*/
> Tadashi Kakefuda
> The Internet Mail Address ; tadashii@tk.airnet.ne.jp
> * Official site ; http://www2c.airnet.ne.jp/as400/
> /*----------------------------------------------------------*/
> +---
> | This is the RPG/400 Mailing List!
> | To submit a new message, send your mail to RPG400-L@midrange.com.
> | To subscribe to this list send email to RPG400-L-SUB@midrange.com.
> | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
> | Questions should be directed to the list owner/operator:
david@midrange.com
> +---
>
T.I.A.
Best regards.
/* ---------------------------------------------------------*/
Tadashi Kakefuda
The Internet Mail Address ; tadashii@tk.airnet.ne.jp
* Official site ; http://www2c.airnet.ne.jp/as400/
/*----------------------------------------------------------*/
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.