All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.w3c.css.values.CssDate Maven / Gradle / Ivy

The newest version!
//
// $Id: CssDate.java,v 1.6 2010-01-06 09:27:44 ylafon Exp $
// From Philippe Le Hegaret ([email protected])
//
// (c) COPYRIGHT MIT, ERCIM and Keio, 1997-2010.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.values;

import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;

/**
 * 

Date

*

* Legal format is dd/mm/yyyy as in SSML * * @version $Revision: 1.6 $ */ public class CssDate extends CssValue { public static final int type = CssTypes.CSS_DATE; public final int getType() { return type; } String day = ""; String month = ""; String year = ""; /** * Create a new CssDate. */ public CssDate() { } /** * Set the value of this date. * * @param s the string representation of the time. * @param ac For errors and warnings reports. * @throws InvalidParamException The date format is incorrect */ public void set(String s, ApplContext ac) throws InvalidParamException { s = s.toLowerCase(); int first_slash = s.indexOf('/'); int last_slash; if (first_slash == -1) { // invalid date throw new InvalidParamException("value", s, ac); } last_slash = s.lastIndexOf('/'); if (first_slash == last_slash) { // only one / in date is invalid date throw new InvalidParamException("value", s, ac); } day = s.substring(0, first_slash - 1); month = s.substring(first_slash, last_slash - 1); year = s.substring(last_slash); int d, m, y; try { d = Integer.parseInt(day); m = Integer.parseInt(month); y = Integer.parseInt(year); } catch (NumberFormatException e) { throw new InvalidParamException("value", s, ac); } if (d > 31 || d <= 0 || m > 12 || m <= 0 || y < 0) { throw new InvalidParamException("value", s, ac); } } /** * Returns the current value */ public Object get() { return toString(); } /** * Returns a string representation of the object. */ public String toString() { StringBuilder sb = new StringBuilder(day); sb.append('/').append(month).append('/').append(year); return sb.toString(); } /** * Compares two values for equality. * * @param value The other value. */ public boolean equals(Object value) { return (value instanceof CssDate && this.day.equals(((CssDate) value).day) && this.month.equals(((CssDate) value).month) && this.year.equals(((CssDate) value).year)); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy