I do not believe one can accurately calculate and/or estimate when all Bitcoins will be mined.
Depending on what you mean by "accurately", you are most likely incorrrect. All bitcoins will be mined somewhere areound the year 2140.
There are many factors such as mining profitability, technological advancements in mining speed, the demand for Bitcoins, collapses of certain global economies, and countless other variables.
And yet, unless there is a significant disruption in the process, the Bitcoin protocol self adjusts the difficulty so that new blocks are created on average every 10 minutes, and the block subsidy is cut in half every 210,000 blocks. Therefore, regardless of any of those things you've mentioned, the block subsidy will be cut in half approximately every 4 years, and all bitcoins will be mined somewhere around the year 2140.
What we do know is that the last block containing new bitcoin will be the block 6,930,000 ; we are currently on block 312,450 (at the time of this posting). The estimation given is based off block speeds being under 10 minutes per block. With even the slightest change in speed, the date could be prolonged. If calculating the average block speed at 15 minutes, it would be late 2202.
Fortunately the protocol self adjusts the difficulty, so an average speed of 15 minutes over a large number of blocks is unlikely.
Keep in mind when trying to estimate what the average block speed is, todays speed is only a small window in time. With increasing difficulty, the future could hold hour long block times if our technology does not increase.
If the average time between blocks approaches an hour, then the protocol will reduce the difficulty, and block times will return to 10 minutes.
Alternatively if one were to develop an unthinkable mining rig with speeds unimaginable, they could quickly be pumping out blocks every few seconds.
But only for the next 2016 blocks, after which the difficulty will jump to 400% higher than it currently is. It will continue to increase the difficulty by 400% every 2016 blocks until the block times return to 10 minutes.
Overall, to answer your question; We will never know when the last bitcoin will be mined until it happens.
But by understanding the protocol, we can come up with a pretty reasonable estimate of somwhere around the year 2140.
If you are concerned as to what would happen once the last coin is mined, all the transaction fees would go to the pool that finds the block. The transaction fees would be divided up and serve as *hopefully* a substantial reward.
Correct.