>>Maybe because it's Friday afternoon, but I can't seem to figure out this problem. Any help would be greatly appreciated.
>>
>>I am working on a Human Resources project, that in part, has to determine some benefit accruals based on years of service, etc. etc. (Why do Union guys have better benefits than I do anyway? Oh well, that's a different topic better discussed over a couple of beers!)
>>
>>One accrual is dependent on the number of weeks that have elapsed. One approach is to write out to a table accruals for every pay period or at month, quarter, or year end close.
>>
>>But I think it would be better to calc the accruals on the fly and without having to create and maintain yet another table. And this brings us to the place where I need help.
>>
>>Does anyone know a method for calculating the number of weeks that have elapsed between two dates? If only 3 days of a begining or ending date are in the date range, then that week is not counted. If 4 or more days are in a beginning or ending week, then the week is counted in the total.
>>
>>Again, any insight, comments or LOL remarks would be appreciated.
>>
>>Thanks
>>Don Lowrey
? fWeeksService( {^1998/05/17}, Date() )
>
>***************************************
>Function fWeeksService( dStart, dStop )
>***************************************
> If Not ( Type( "dStart" ) == "D" And Type( "dStop" ) == "D" ) ;
> Or Empty( dStart ) Or Empty( dStop ) ;
> Or IsNull( dStart ) Or IsNull dStop ) Then
> Error "Invalid parameters passed to fWeeksService()."
> Endif
> dStart = {^1998/05/17}
> dToday = Date()
> iRemainder = Mod( dToday - dStart, 7 )
> iWeeksService = Int( ( dToday - dStart ) / 7 )
> If iRemainder > 3 Then
> iWeeksService = iWeeksService + 1
> Endif
> Return iWeeksService
> EndFunc
Make dToday dStop
censored.