IT SOLUTIONS
Your full service technology partner! 
-Collapse +Expand
Paradox
Search Paradox Group:

Advanced
-Collapse +Expand Paradox To/From
To/FromCODEGuides
-Collapse +Expand Paradox Store
PRESTWOODSTORE

Prestwood eMagazine

October Edition
Subscribe now! It's Free!
Enter your email:

   ► KBDesktop Data...Paradox & Ob...ObjectPAL Co...OPAL: Langua...   Print This     
  From the January 2013 Issue of Prestwood eMag
 
Paradox OPAL: Language Details:
Adding & subtracting months from a date
 
Posted 22 years ago on 8/20/2002 and updated 11/12/2002
Take Away: The following code demonstrates one technique for adding and subtracting months from a date in Paradox's ObjectPAL.

KB100001

Follow the embedded comments to understand how it works.
proc cpAddMonths(dStart Date, siMonths SmallInt) Date
;Add number of months in siMonths to the date dStart 
;and return a valid date. This custom procedure 
;accomodates adding of more then 12 months, last day 
;of the month and properly handle leap year. This 
;custom procedure also works for subtracting months.
var
siNewMonth SmallInt
siNewDay SmallInt
siNewYear SmallInt
endVar

;Find new month & year.
siNewMonth = month(dStart) + siMonths
siNewYear = year(dStart)
while siNewMonth > 12 ;For adding months.
siNewMonth = siNewMonth - 12
siNewYear = siNewYear + 1
endWhile
while siNewMonth < 1 ;For subtracting months.
siNewMonth = siNewMonth + 12
siNewYear = siNewYear - 1
endWhile

;Find new day.
siNewDay = day(dStart)
while siNewDay > daysInMonth(date(string(siNewMonth) 
 + '/1/' + string(siNewYear)))
siNewDay = siNewDay - 1
endWhile

;Return calculated date.
return(date(string(siNewMonth) + '/' + string(siNewDay) 
  + '/' + string(siNewYear)))
endProc

method pushButton(var eventInfo Event)
var
dStart Date
siMonths SmallInt
endVar

;Initialize variables.
dStart = date('12/31/1995')
siMonths = 2

;Prompt user for values.
dStart.view('Enter Start date')
siMonths.view('Enter number of months')

;View calculated date.
view(cpAddMonths(dStart, siMonths), 'Calculated Date')
endMethod

Comments

0 Comments.
Share a thought or comment...
 
Write a Comment...
...
Sign in...

If you are a member, Sign In. Or, you can Create a Free account now.


Anonymous Post (text-only, no HTML):

Enter your name and security key.

Your Name:
Security key = P1116A1
Enter key:
KB Post Contributed By Mike Prestwood:

Mike Prestwood is a drummer, an author, and creator of the PrestwoodBoards online community. He is the President & CEO of Prestwood IT Solutions. Prestwood IT provides Coding, Website, and Computer Tech services. Mike has authored 6 computer books and over 1,200 articles. As a drummer, he maintains play-drums.com and has authored 3 drum books. If you have a project you wish to discuss with Mike, you can send him a private message through his PrestwoodBoards home page or call him 9AM to 4PM PST at 916-726-5675 x205.

Visit Profile

 KB Article #100001 Counter
8991
Since 4/2/2008
Go ahead!   Use Us! Call: 916-726-5675  Or visit our new sales site: 
www.prestwood.com


©1995-2024 Prestwood IT Solutions.   [Security & Privacy]