protected static boolean isUSASummer(int date) throws Exception {
		int[] USADSTSequence = {20070101, 20070311, 20071104, 20080309, 20081102, 20090308, 20091101, 20100314, 20101107, 20110313, 20111106, 20120311, 20121104, 20130310, 20131103, 20140309, 20141102, 20150308, 20151101, 20160313, 20161106, 20170312, 20171105, 20180311, 20181104, 20190310, 20191103, 20200308, 20201101, 20210314, 20211107, 20220313, 20221106, 20230312, 20231105, 20240310, 20241103, 20250309, 20251102, 20251231};
		boolean isSummer = true;
		if(date < 20070101 || date > 20251231) //error if date value is outside our table
			throw new Exception("DST module only works from 2007 to 2025.");
		//Iterate through DST sequence, toggling isSummer each value. When the wheel stops, isSummer will be correct.
		for (int i = 0; i < USADSTSequence.length && date >= USADSTSequence[i]; i++) {
			isSummer = !isSummer;
			//System.out.println(i % 2 + " " + isSummer + " " + date + " " + USADSTSequence[i]);
		}
		//System.out.println(isSummer);
		return isSummer;
	}