We're lucky that we go to Florida most Easters so (a) we get a good burst of hot weather while we're there and (b) I buy 90% of our summer clothes cheap while we're there.
I really feel the cold (and have been very pleased this week that I didn't pack away my cashmere jumper, as I'm wearing them again this week), so it really has to be pretty darn warm for me to expose my legs and arms. I've found a good workaround is blazers with short sleeved Ts - then if it does warm up or the sun comes out, you just shed a layer. But for me, shorts are only to be worn when abroad (and the 3 days we get over 23 degrees). I've got a good selection of shorts now, some of which are 4+ years old (before that it was baby weight, so threw out my previously slimmer stuff, and then had to throw out the bigger stuff - my weight's stable now!), all classics. Ts I find I get good wear out of, and then as you say, they can get stained really easily so need regularly replacing. Bikinis, I buy at least one a year, to replace the stained or bobbly ones - they don't last very long IMO.
Now Birkies - well I generally live in these end May-September at least (as well as the Easter break), so I buy a pair a year, wash regularly and wear them out completely.
Summer dresses - I have a few, many are a few years old, all are classics, won't need to buy another this year, I wouldn't have thought.