你的语法还真混乱,帮你一下:
for 表示一段时间,一般用完成时
1. i have been a teacher for 2 years.
2. she has been living in london for 5 years.
ago 表示一个时间点,一般用过去式:
1. she moved to manchester three weeks ago .
2. he started to watch tv five hours ago.
至于你的几句话,帮你改一下:
he has gone for 2 days.
he has gone to shanghai for 2 days.
he went to shanghai 2 days ago
he has gone to beijing for two days.
he has left beijing for two days.