` Comment on an Icetips Article
Icetips - Templates, Tools & Utilities for Clarion Developers

Templates, Tools and Utilities
for Clarion Developers

Add a comment to an Icetips Article

Please add your comments to this article. Please note that you must provide both a name and a valid email address in order for us to publish your comment. Comments are moderated and are not visible until they have been approved. Spam is never approved!

Your Name:  
Email:  
Header text/Subject:  

Please enter your comment in the box below:

Back to article list   Search Articles     Add Comment     Printer friendly     Direct link  

Par2: Day object methods
1997-11-29 -- Gus Creses
 
For you CW aficionados, here are a few date functions you might find useful. !------------------------------------- OOPDateTime.AlphaMonth FUNCTION(xMo) !Returns short name of month "xMo" (range 1-12) !------------------------------------- CODE RETURN SUB(FORMAT(DATE(xMo,1,1980),@D3),1,INSTRING(' ', FORMAT(DATE(xMo,1,1980),@D3),1,1)) !-------------------------------------------------------------------- OOPDateTime.DaysInMonth FUNCTION(xDate) ! Return number of days in month in which xDate is a date. !-------------------------------------------------------------------- CODE !Wrap to last day in month. RETURN DAY(DATE(MONTH(xDate)+1,1,YEAR(xDate)) - 1) !-------------------------------------------------------------------- OOPDateTime.IsLeapYear FUNCTION(xDate) ! Return True the year in which xDate is a date, is a leap year. !-------------------------------------------------------------------- CODE !Wrap to last day in February. RETURN (DAY(DATE(3,1,YEAR(xDate)) - 1) - 28) !-------------------------------------------------------------------- OOPDateTime.LongMonthName FUNCTION(xDate) ! Full name of month in xDate !-------------------------------------------------------------------- CODE RETURN SUB(FORMAT(xDate,@D4),1,INSTRING(' ', FORMAT(xDate,@D4),1,1)) !-------------------------------------------------------------------- OOPDateTime.ShortMonthName FUNCTION(xDate) ! First three letters of month in xDate !-------------------------------------------------------------------- CODE RETURN SUB(FORMAT(xDate,@D3),1,INSTRING(' ', FORMAT(xDate,@D3),1,1)) !-------------------------------------------------------------------- OOPDateTime.DayOfWeek FUNCTION(xDate) ! Return short day of week name in xDate !-------------------------------------------------------------------- CODE RETURN CHOOSE(((xDate % 7) + 1),'Sunday','Monday','Tuesday','Wednesday', | 'Thursday','Friday','Saturday') !-------------------------------------------------------------------- OOPDateTime.ShortDayOfWeek FUNCTION(xDate) ! Return day of week name in xDate !-------------------------------------------------------------------- CODE RETURN(CHOOSE(((xDate % 7) + 1),'Sun','Mon','Tue','Wed','Thu','Fri','Sat')) !-------------------------------------------------------------------------- OOPDateTIme.WorkDays FUNCTION(xLoDate,xHiDate) !Calculate the number of non-weekend days between two dates !Count only Monday thru Friday. No regard for statutory holidays. !-------------------------------------------------------------------------- Ff LONG,AUTO Lf LONG,AUTO CODE !How many workdays left in first week fragment. !---------------------------------------------------- !S M T W T F S Ff = CHOOSE(((xLoDate % 7)+1),5,5,4,3,2,1,0) !Advance xLoDate to first Sunday after xLoDate. !---------------------------------------------- xLoDate += Ff !How many workdays included in last week fragment. !-------------------------------------------------------- !S M T W T F S Lf = CHOOSE(((xHiDate % 7)+1),0,1,2,3,4,5,5) !Move xHiDate backward to Sunday before xHiDate. !----------------------------------------------- xHiDate -= Lf !Calculate number of workdays in the set of whole weeks !between Sunday (xLoDate) and Sunday (xHiDate) and add !the fragments from first and last week. This works even if !the first and last day are today and tomorrow. Or both !are today. !---------------------------------------------------------- RETURN ((((xHiDate - xLoDate)/7)*5) + Ff + Lf)


Today is November 21, 2024, 7:19 am
This article has been viewed 35346 times.



Back to article list   Search Articles   Add Comment   Printer friendly

Login

User Name:

Password: