I am not 100% on the exact times but from Durban, jhb would be around 4 maybe 5 hours flying because you have to cross or go around the dragensberg-mountain range which is quite an amazing sight. The weather will be your “guide”. From jhb (grand cental airport) flying to Sun City will take you about 45mins. Also a great flight as Sun City lies in a volcanic crater with flat earth around. I flew there for my cross-country. Durban to cape-town is quite far and it depends on the route you will take. Overland or following the coast. That will definitely take a couple of hours. But could also be great fun as a stopover holiday on route to c-town.
Hope this helps!