I do not believe one can accurately calculate and/or estimate when all Bitcoins will be mined. 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. 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. 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. Alternatively if one were to develop an unthinkable mining rig with speeds unimaginable, they could quickly be pumping out blocks every few seconds.
Overall, to answer your question; We will never know when the last bitcoin will be mined until it happens.
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.
Difficulty doesn't increase linearly, it changes based on hash rate. Difficulty recalculates with the intention of keeping mining speed at (Or as close as predictably possible to) 10 minutes per block. So increasing hash rate would only cause blocks to be mined faster than 10 minutes until the difficulty retargets. And the same can be said about a decrease in hash rate.