I.T. Discussion Community!
-Collapse +Expand
Search Paradox Group:

-Collapse +Expand Paradox To/From
-Collapse +Expand Paradox Store

Prestwood eMagazine

February 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 18 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.


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.
siNewMonth SmallInt
siNewDay SmallInt
siNewYear SmallInt

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

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

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

method pushButton(var eventInfo Event)
dStart Date
siMonths SmallInt

;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')


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 = P1264A1
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
Since 4/2/2008

Follow PrestwoodBoards on: 

©1995-2020 PrestwoodBoards  [Security & Privacy]
Professional IT Services: Coding | Websites | Computer Tech