سلام و روز خوش
این دست توابع رو باید در همون ماژولی که برای تاریخ خورشیدی استفاده کردین پیدا کنین،
ولی چون سال های کبیسه تاثیری در این محاسبه نداره و الگوریتم ساده ای هم داره، خودتون هم میتونین جداگانه بنویسین.
با فرض منطقی که تاریخ از نوع LONG و به فرمت YYYYMMDD باشه، تابع شما چیزی شبیه کد زیر میشه:
FUNCTION PDate_AddMonth(PDate AS LONG , Months AS LONG) AS LONG
DIM YYYY , MM , DD AS LONG
DD= PDate MOD 100
YYYY= PDate\10000
MM= (PDate\100) MOD 100
YYYY= YYYY + Months\12
MM= MM + Months MOD 12
IF MM > 12 THEN
MM= MM MOD 12
YYYY= YYYY + 1
ELSEIF MM < 1 THEN
MM= 12 + MM
YYYY= YYYY - 1
END IF
PDate_AddMonth= YYYY*10000 + MM*100 + DD
END FUNCTION
این تابع باید بازای مقادیر منفی Months هم کار کنه، در هر صورت اول اون رو بازای همه حالتها چک کنین چون خودم تست نکردم!