/******************************************************************************* * Copyright (c) 2013 Luigi Sgro. All rights reserved. This * program and the accompanying materials are made available under the terms of * the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Luigi Sgro - initial API and implementation ******************************************************************************/ package com.quantcomponents.chart.series.scale; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; import com.quantcomponents.chart.IMark; import com.quantcomponents.chart.series.TimeScale; import com.quantcomponents.chart.series.TimeMark; /** * Generates three month marks on a time axis */ public class QuarterScale extends TimeScale { public QuarterScale(TimeZone timeZone) { super(Calendar.MONTH, 3, timeZone, 4L * 30L * 24L * 60L * 60L * 1000L); } @Override public IMark<Date> previousMark(Date date) { cal.setTime(date); cal.set(Calendar.MILLISECOND, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.DAY_OF_MONTH, 1); int rem = cal.get(Calendar.MONTH) % 3; if (rem > 0) { cal.add(Calendar.MONTH, -rem); } return new TimeMark(this, cal.getTime()); } @Override protected TimeScale buildParent(TimeZone timeZone) { return new YearScale(timeZone); } }