TimeMarker[] getTimeMarkers( long start, long stop )
	{
		start 	*= 1000;								// Discard milliseconds
		stop	*= 1000;
	
		Calendar cMaj	= Calendar.getInstance();
		Calendar cMin	= Calendar.getInstance();
	
		// Set the start calculation point for the grids
		setStartPoint(cMaj, majGridTimeUnit, start);
		setStartPoint(cMin, minGridTimeUnit, start);
	
		// Find first visible grid point
		long minPoint = cMin.getTimeInMillis();
		long majPoint = cMaj.getTimeInMillis();
	
		while ( majPoint < start )
			majPoint = getNextPoint(cMaj, majGridTimeUnit, majGridUnitSteps);
		while ( minPoint < start )
			minPoint = getNextPoint(cMin, minGridTimeUnit, minGridUnitSteps);
	
		ArrayList markerList = new ArrayList();
			
		// Marker list does not care in what order the markers are returned, we could
		// get minor and major grid sequentially, but, if we did that, we might draw the marker
		// more than once if the major and minor overlap, which is most likely slower than
		// this way of calculating the markers. 
		//
		// In short: the first while() loop is not *necessary* to get correct results
		while ( minPoint <= stop && majPoint <= stop )
		{
			if ( minPoint < majPoint )
			{
				markerList.add( new TimeMarker( minPoint, "", false ) );
				minPoint = getNextPoint( cMin, minGridTimeUnit, minGridUnitSteps );
			}
			else if ( minPoint == majPoint )	// Special case, but will happen most of the time
			{
				markerList.add( new TimeMarker( majPoint, dateFormat.format(cMaj.getTime()), true ) );
				majPoint = getNextPoint( cMaj, majGridTimeUnit, majGridUnitSteps );
				minPoint = getNextPoint( cMin, minGridTimeUnit, minGridUnitSteps );
			}
			else
			{
				markerList.add( new TimeMarker( majPoint, dateFormat.format(cMaj.getTime()), true ) );
				majPoint = getNextPoint( cMaj, majGridTimeUnit, majGridUnitSteps );
			}
		}

		while ( minPoint <= stop )
		{
			markerList.add( new TimeMarker( minPoint, "", false ) );
			minPoint = getNextPoint( cMin, minGridTimeUnit, minGridUnitSteps );
		}
	
		while ( majPoint <= stop )
		{
			markerList.add( new TimeMarker( majPoint, dateFormat.format(cMaj.getTime()), true ) );
			majPoint = getNextPoint( cMaj, majGridTimeUnit, majGridUnitSteps );
		}
	
		return (TimeMarker[]) markerList.toArray( new TimeMarker[0] );
	}