Including type changing moves like Forest's Curse and Trick Or Treat, as well as anything else you can think of.
Actually, the other answers are wrong. The max amount of types a Pokémon can have is 3. This is when a Pokémon has Trick-or-Treat or Forest's Curse used On it. If a Pokémon is already affected by one of these moves, the second of which was used takes place.