You may have noticed that there are a number of ways to say ‘old’ in Spanish.
Sometimes it depends on context and there are also set ways to refer to how old someone is etc.
¿Cuántos años tiene (usted)? How old are you? (Lit. How many years do you have?)
Tengo veinte uno años. I’m 21 years old.
¿Qué edad tiene él? How old is he?
Él tiene treinta y un año. He is thirty one years old.
You can use the same constructions in different tenses too.
¿Cuántos años tenía usted? How old were you?
(Yo) tenía veinte uno años. I was twenty one (years old).
¿Qué edad tenía él? How old was he?
There are also a couple of variations, for example using the verb contar.
Ella contaba solo con 17 años. She was just 17 years old.
Ella contaba apenas con 17 años. She was barely 17 years old.
Now, how about when you want to describe someone or something as old?
Viejo is good for describing ‘old’ things. Just remember to make it agree with the noun or things that it’s modifying.
Tengo una bolsa vieja. I have an old bag.
Tengo los zapatos viejos. I have old shoes.
And if it’s something really old you could use antiguo.
El antiguo testaments. The Old Testament.
Viejo/vieja can refer to people if you mean ‘former’ and in that case it goes before the noun.
That’s my old Spanish teacher.
Esa es mi vieja maestra de español.
Or in the set phrase ‘viejo y querido’ ie. good old so and so.
El viejo y querido Pablo. Good old Paul.
But generally if you want to refer to a person as being old you should use mayor or anciano.
Había una mujer mayor sentado en el coche.
There was an elderly lady sitting in the car.
El anciano andaba en last calle.
The old man was walking in the street.
Remember though that antiguo can mean ‘old’ as in ‘former’, ‘old fashioned’, ‘vintage’, or even ‘ancient’ or ‘antique’.
Coche antiguo: a vintage car
Coche viejo: an old car
Los antiguos grecos. The ancient Greeks.
Antique furniture. Muebles antiguos.
Un antiguo enamorado. An old flame.
La antigua capital de Nueva Zelanda fue Wellington. The old (former) capital of New Zealand was Wellington.
Mi antiguo colegio. My old school.
No me gusta este vestido Mamá, es tan antiguo I don’t like this dress Mum, it’s so old fashioned!
Una civilización antigua. An ancient civilization.
Now, how about old people?
Although you could use ‘viejo’ it can sound brusque or even rude. You could soften it by using the more informal term ‘viejito’, ‘viejita’ etc or to avoid giving any offence you could use ‘mayor’ which can mean ‘old’, ‘adult’, ‘grown-up’ etc.
Mis padres ya son mayores. My parents are old.
Mis hijos ya son mayores. My children are already grown ups.
Había un hombre mayor sentado en el bus. There was an elderly man sitting on the bus.
Solo para mayores. Adults only.
NB: Just like ‘my old man’ or ‘my old lady’ can be used as slang for husband or wife, in some areas ‘viejo’ or ‘vieja’ can be used the same way. These terms would likely not be considered that respectful in either language.
Bear in mind too that ‘mayor’ can also be translated as ‘older’, ‘oldest’, ‘eldest’ or even ‘greater’.
Mi hijo mayor. My oldest/eldest son.
Paul es mayor que Maria. Paul is older than Maria.
La población de Nicaragua es mayor de Nueva Zelanda. The population of Nicaragua is greater than New Zealand.
And then you have anciano, fairly formal but along with ‘mayor’ a polite way to refer to ‘old’ or ‘elderly’ person.
Un anciano. An old man.
Una anciano. An old woman.
Los ancianos. The elderly. The old folks.