The general rule for rollover is this, taking SP as an example:
The S&P futures expire the 3rd Friday of the month in March, June, Sept,and Dec. The day before the 2nd Friday of the month (Thursday) is the day the new contract begins to trade actively. This will usually be the 2nd Thursday of the month, but could be the 1st Thursday of the month if the first day of the month is a Friday - thus I say the day before the 2nd Friday of the month.
Here are the rollover dates for the SP. The same dates apply for other equity index contracts (after their introduction) such as the ES, NQ, ND, ER2 etc.
SP82H - 12/10/1981 to 03/10/1982
SP82M - 03/11/1982 to 06/09/1982
SP82U - 06/10/1982 to 09/08/1982
SP82Z - 09/09/1982 to 12/08/1982
SP83H - 12/09/1982 to 03/09/1983
SP83M - 03/10/1983 to 06/08/1983
SP83U - 06/09/1983 to 09/07/1983
SP83Z - 09/08/1983 to 12/07/1983
SP84H - 12/08/1983 to 03/07/1984
SP84M - 03/08/1984 to 06/06/1984
SP84U - 06/07/1984 to 09/12/1984
SP84Z - 09/13/1984 to 12/12/1984
SP85H - 12/13/1984 to 03/06/1985
SP85M - 03/07/1985 to 06/12/1985
SP85U - 06/13/1985 to 09/11/1985
SP85Z - 09/12/1985 to 12/11/1985
SP86H - 12/12/1985 to 03/12/1986
SP86M - 03/13/1986 to 06/11/1986
SP86U - 06/12/1986 to 09/10/1986
SP86Z - 09/11/1986 to 12/10/1986
SP87H - 12/11/1986 to 03/11/1987
SP87M - 03/12/1987 to 06/10/1987
SP87U - 06/11/1987 to 09/09/1987
SP87Z - 09/10/1987 to 12/09/1987
SP88H - 12/10/1987 to 03/09/1988
SP88M - 03/10/1988 to 06/08/1988
SP88U - 06/09/1988 to 09/07/1988
SP88Z - 09/08/1988 to 12/07/1988
SP89H - 12/08/1988 to 03/08/1989
SP89M - 03/09/1989 to 06/07/1989
SP89U - 06/08/1989 to 09/06/1989
SP89Z - 09/07/1989 to 12/06/1989
SP90H - 12/07/1989 to 03/07/1990
SP90M - 03/08/1990 to 06/06/1990
SP90U - 06/07/1990 to 09/12/1990
SP90Z - 09/13/1990 to 12/12/1990
SP91H - 12/13/1990 to 03/06/1991
SP91M - 03/07/1991 to 06/12/1991
SP91U - 06/13/1991 to 09/11/1991
SP91Z - 09/12/1991 to 12/11/1991
SP92H - 12/12/1991 to 03/11/1992
SP92M - 03/12/1992 to 06/10/1992
SP92U - 06/11/1992 to 09/09/1992
SP92Z - 09/10/1992 to 12/09/1992
SP93H - 12/10/1992 to 03/10/1993
SP93M - 03/11/1993 to 06/09/1993
SP93U - 06/10/1993 to 09/08/1993
SP93Z - 09/09/1993 to 12/08/1993
SP94H - 12/09/1993 to 03/09/1994
SP94M - 03/10/1994 to 06/08/1994
SP94U - 06/09/1994 to 09/07/1994
SP94Z - 09/08/1994 to 12/07/1994
SP95H - 12/08/1994 to 03/08/1995
SP95M - 03/09/1995 to 06/07/1995
SP95U - 06/08/1995 to 09/06/1995
SP95Z - 09/07/1995 to 12/06/1995
SP96H - 12/07/1995 to 03/06/1996
SP96M - 03/07/1996 to 06/12/1996
SP96U - 06/13/1996 to 09/11/1996
SP96Z - 09/12/1996 to 12/11/1996
SP97H - 12/12/1996 to 03/12/1997
SP97M - 03/13/1997 to 06/11/1997
SP97U - 06/12/1997 to 09/10/1997
SP97Z - 09/11/1997 to 12/10/1997
SP98H - 12/11/1997 to 03/11/1998
SP98M - 03/12/1998 to 06/10/1998
SP98U - 06/11/1998 to 09/09/1998
SP98Z - 09/10/1998 to 12/09/1998
SP99H - 12/10/1998 to 03/10/1999
SP99M - 03/11/1999 to 06/09/1999
SP99U - 06/10/1999 to 09/08/1999
SP99Z - 09/09/1999 to 12/08/1999
SP00H - 12/09/1999 to 03/08/2000
SP00M - 03/09/2000 to 06/07/2000
SP00U - 06/08/2000 to 09/06/2000
SP00Z - 09/07/2000 to 12/06/2000
SP01H - 12/07/2000 to 03/07/2001
SP01M - 03/08/2001 to 06/06/2001
SP01U - 06/07/2001 to 09/17/2001 * WTC Event
SP01Z - 09/18/2001 to 12/12/2001
SP02H - 12/13/2001 to 03/06/2002
SP02M - 03/07/2002 to 06/12/2002
SP02U - 06/13/2002 to 09/11/2002
SP02Z - 09/12/2002 to 12/11/2002
SP03H - 12/12/2002 to 03/12/2003
SP03M - 03/13/2003 to 06/11/2003
SP03U - 06/12/2003 to 09/10/2003
SP03Z - 09/11/2003 to 12/10/2003
SP04H - 12/11/2003 to 03/10/2004
SP04M - 03/11/2004 to 06/09/2004
SP04U - 06/10/2004 to 09/08/2004
SP04Z - 09/09/2004 to 12/08/2004
SP05H - 12/09/2004 to 03/09/2005
SP05M - 03/10/2005 to 06/08/2005
SP05U - 06/09/2005 to 09/07/2005
SP05Z - 09/08/2005 to 12/07/2005
Richard