# Thread: stuck converting years and months to months

1. ## stuck converting years and months to months

i get a date difference in years and months and need to convert it to just months, seems to be easy but i have been on this since 7am this morning and cant seem to work it out so would appreciate a little help. i bet it is something really simple.

this gets the date difference between a current record and today
Code:
dim yrmo as C
dim refd_beg as D
dim refd_now as D
dim yrcount as n
dim mnthcount as n

refd_now = Date()

yrcount = year(refd_now)- year(refd_beg)

if month(refd_now) >= month(refd_beg) then
mnthcount = month(refd_now) - month(refd_beg)
yrmo = alltrim(str(yrcount))+" Years and "+alltrim(str(mnthcount))+" Months"
else
yrcount = yrcount-1
mnthcount = 12+month(refd_now)-month(refd_beg)
yrmo = alltrim(str(yrcount))+" Years and "+alltrim(str(mnthcount))+" Months"

end if

e.control.yrmo = yrmo
e.control.yrcount = yrcount
e.control.mnthcount = mnthcount

e.rtc.yrcount = yrcount
e.rtc.mthcount = mnthcount
e._state.yrcount = yrcount
e._state.mthcount = mnthcount
next, i am trying to duplicate child records but only if they meet a filter - the chid records relate to loans and credit cards, in the record their is a N field which has a value for the number of months that the debt had left to run.

I need to determine if the number of months in the record is less than the number of months from today since the record was created (hope that makes sense)
Code:
dim qry as P
dim nrecs as N
dim i as N
dim varMthDiff as N
dim varYrDiff as N
dim varYtoM as N
dim varTotMonths as N

varMthDiff = e._state.mthcount
varYrDiff = e._state.yrcount
varYtoM = varYrDiff/12
varTotMonths = varYtoM+varMthDiff
my problem is the part in red above, as i have an earlier section of this duplication working just fine using just the varYrDiff

Code:
'duplicate debts
dim tbl3 as p
dim duptbl3 as P

query.description = "Dup_debts"
query.order = ""
query.filter = filter_caseref
query.options = ""
qry3 = tbl3.query_create()
nrecs = qry3.records_get()
if nrecs > 0
tbl3.fetch_first()
while .NOT. tbl3.fetch_eof()
dim debttermleft as n = tbl3.commmonthsleft
dim debtsnewterm as n = debttermleft - varTotMonths
if debtsnewterm > 1
duptbl3.enter_begin()
duptbl3.caseref = NewCaseref
duptbl3.commtype = tbl3.commtype
duptbl3.commlender = tbl3.commlender
duptbl3.commbalance = tbl3.commbalance
duptbl3.commmonthly = tbl3.commmonthly
duptbl3.commmonthsleft = tbl3.commmonthsleft-varTotMonths
duptbl3.commsecured = tbl3.commsecured
duptbl3.commrepaid = tbl3.commrepaid
duptbl3.commwho = tbl3.commwho
duptbl3.commlimit = tbl3.commlimit
duptbl3.commbalancehow = tbl3.commbalancehow
duptbl3.commbalancehowstat = tbl3.commbalancehowstat
duptbl3.enter_end()
end if
tbl3.fetch_next()
end while
end if
qry3.close()
tbl3.close()
duptbl3.close()

2. ## Re: stuck converting years and months to months

How do you define a "month" ?

If you were doing it manually how many months between January 12th and April 5th?

How many months between January 12th and April 20th?

what "rule" did you use to answer the questions?

3. ## Re: stuck converting years and months to months

Shouldn't
varYtoM = varYrDiff/12
Be
varYtoM = varYrDiff*12

4. ## Re: stuck converting years and months to months

Richard - I didn't read through or try to understand all your code, but I wonder if this helps:

You can convert a year/month to an integer, for instance, this August is the 8th month of the 2014th year, and each year has 12 months. So:

(2014 * 12) + 8 = 24176

You can convert any date's (Year * 12) + Months to get an integer, and use that for comparison, calculation, etc.

5. ## Re: stuck converting years and months to months

Originally Posted by Tim Kiebert
Shouldn't
varYtoM = varYrDiff/12
Be
varYtoM = varYrDiff*12
My idiot moment of the week, if you can believe i work in finance. no idea why i was dividing it.

thanks for all of your replies and help.

6. ## Re: stuck converting years and months to months

how many months are there between
jan 30th 2014 and feb 3rd 2014?

7. ## Re: stuck converting years and months to months

Originally Posted by GGandhi
how many months are there between
jan 30th 2014 and feb 3rd 2014?
Gandhi - I think the answer would vary a bit depending on purpose. Most accounting systems are based on accounting periods, and most of them use a calendar month as a period. So January is accounting period 1, and February is accounting period 2, which means the answer to your question is 1. At least for the purpose I just described.

8. ## Re: stuck converting years and months to months

While I suppose the questions I framed were essential, it's clear that at least to Richard they were not <grin>.

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•