If you use date.today().month()+4 how will you get its year. For instance, today's month is September and you add 4 in the month in the given statement above. We know that the year of the today's month that was added by 4 is 2015 because it will be January, how to get the exact year based on the month?

2 Answers 2


You can use the following code to get the exact year: Date.Today().addmonths(number).year();


  • Date.Today().addmonths(3).year() will result in 2014
  • Date.Today().addmonths(4).year() will result in 2015
  • Date.Today().addmonths(16).year() will result in 2016
  • I think this much more simpler. :)
    – rpm07
    Sep 3, 2014 at 9:35
  • Date.Today().month()+1 would this be a wrong approach? what are the possible future error to this approach? Let's say the date today is December its value is 12, therefore when we add 1 it will become 13. However when we use Utility.GetMonth(date.today().month()+1) it will return January.
    – rpm07
    Sep 4, 2014 at 3:04
  • 1
    Is there a reason why you use Date.Today().month()+1 instead of Date.Today().addMonths(1).month()? As you said, the first statement will return 13 when it is December while Date.Today().addMonths(1).month() will return 1. It is safer to use Date.Today().addMonths(1).month().
    – svenf
    Sep 4, 2014 at 6:19
  • well as beginner in salesforce development, I still don't know some of the syntax, and what are the good practices. I'm in the process of developing while learning. That is why I asked.
    – rpm07
    Sep 4, 2014 at 6:22

Use a date variable in your code, then use the addMonths() method.

Date myDate = system.today();

myDate = myDate.addMonths(4);


The second debug statement correctly returns 2015 (as we are now into September).

  • appreciated the effort to answer my question :)
    – rpm07
    Sep 4, 2014 at 3:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.