0

Being new to solidity, I find the docs on the Internet very confusing. I simply want to add 7 years to a

uint timeInSevenYearsFromNow = (block.timestamp).add(????);

What is the value of ???? and how do I calculate it ? Is it 220898482 ?

Yes, this is a noob question. I do not care how precise or exact it will be when executed, whether it is off by a nano-second or several minutes.

4
  • Do you care about leap seconds/years? Jul 24 '19 at 3:07
  • @TjadenHess not at all, I just want to express it all as digits, without using "days" or * operators... only a simple addition of numbers. Thanks ! Edit: thanks for the answer, but I am just curious about 220898482... Jul 24 '19 at 3:17
  • 1
    Why do you want to avoid days and *? It's more readable and adds zero cost since the constants get expanded out at compile time Jul 24 '19 at 4:32
  • I want to add a prime number, just for fun ;) Jul 25 '19 at 15:07
1

If you are OK with being overly simplistic and ignoring leap seconds and leap years, you can simply do

uint timeInSevenYearsFromNow = now + 7 * 365 days;

In older versions of solidity you could use years as a unit, but this was depreciated due to the complexity of accurately tracking time over long periods.

2
  • so is the 7*365 days actually 220898482 (or some other very close number) ? Jul 24 '19 at 3:16
  • 1
    Yes, the unit is just syntactic sugar for (365 * number of seconds in a day) Jul 24 '19 at 4:31

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.