/*
* Copyright 2008 Jeff Dwyer
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
/*
* Simple Date Picker Widget for GWT library of Google, Inc.
*
* Copyright (c) 2006 Parvinder Thapar
* http://psthapar.googlepages.com/
*
* This library is free software; you can redistribute
* it and/or modify it under the terms of the GNU Lesser
* General Public License as published by the Free Software
* Foundation; either version 2.1 of the License, or
* (at your option) any later version. This library is
* distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNULesser General Public License for more details.
* You should have received a copy of the GNU Lesser General
* PublicLicense along with this library; if not, write to the
* Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
package com.apress.progwt.client.widget.datepicker;
/*
* DateFormatter, as its name suggests, is the object which formats the
* date in a particular way. Currently, it supports 3 different formats:
* MMDDYYYY, DDMMYYYY and DDMONYYYY
*/
import java.util.Date;
public class DateFormatter implements DateConstants {
public final static DateFormat DATE_FORMAT_MMDDYYYY = DateFormat.DATE_FORMAT_MMDDYYYY;
public final static DateFormat DATE_FORMAT_DDMMYYYY = DateFormat.DATE_FORMAT_DDMMYYYY;
public final static DateFormat DATE_FORMAT_DDMONYYYY = DateFormat.DATE_FORMAT_DDMONYYYY;
private DateFormat dateFormat = null;
public DateFormatter(DateFormat dateFormat) {
this.dateFormat = dateFormat;
}
/*
* formatDate
*
* Formats the date in the format asked
*
* @param Date (Date to be formatted) @param int (format in which to
* format the date) @return String
*/
public String formatDate(Date date) {
String dateStr = "";
switch (this.dateFormat.getDateFormat()) {
case DateFormat.MMDDYYYY:
dateStr = formatDate_MMDDYYYY(date);
break;
case DateFormat.DDMMYYYY:
dateStr = formatDate_DDMMYYYY(date);
break;
case DateFormat.DDMONYYYY:
dateStr = formatDate_DDMONYYYY(date);
break;
}
return dateStr;
}
/*
* getDateFormat
*
* @return Returns the dateFormat
*/
public DateFormat getDateFormat() {
return dateFormat;
}
/*
* setDateFormat
*
* @param Sets the dateFormat
*/
public void setDateFormat(DateFormat dateFormat) {
this.dateFormat = dateFormat;
}
/*
* formatDate_MMDDYYYY
*
* Formates the given date in MMDDYYYY format
*
* @param (Date to be formatted) @return String
*/
private String formatDate_MMDDYYYY(Date date) {
StringBuffer dateStr = new StringBuffer();
if (date.getMonth() < 9) {
dateStr.append("0");
}
dateStr.append((date.getMonth() + 1));
dateStr.append("/");
if (date.getDate() < 10) {
dateStr.append("0");
}
dateStr.append(date.getDate());
dateStr.append("/");
dateStr.append((date.getYear() + 1900));
return dateStr.toString();
}
/*
* formatDate_DDMMYYYY
*
* Formats the date in DDMMYYYY format
*
* @param (Date to be formatted) @return String
*/
private String formatDate_DDMMYYYY(Date date) {
StringBuffer dateStr = new StringBuffer();
if (date.getDate() < 10) {
dateStr.append("0");
}
dateStr.append(date.getDate());
dateStr.append("/");
if (date.getMonth() < 9) {
dateStr.append("0");
}
dateStr.append((date.getMonth() + 1));
dateStr.append("/");
dateStr.append((date.getYear() + 1900));
return dateStr.toString();
}
/*
* formatDate_DDMONYYYY
*
* Formats the date in DDMONYYYY format
*
* @param (Date to be formatted) @return String
*/
private String formatDate_DDMONYYYY(Date date) {
StringBuffer dateStr = new StringBuffer();
if (date.getDate() < 10) {
dateStr.append("0");
}
dateStr.append(date.getDate());
dateStr.append(" ");
dateStr.append(MONTHS[date.getMonth()]);
dateStr.append(" ");
dateStr.append((date.getYear() + 1900));
return dateStr.toString();
}
}