microsoft.exchange.webservices.data.misc.Time Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ews-java-api Show documentation
Show all versions of ews-java-api Show documentation
Exchange Web Services (EWS) Java API
/*
* The MIT License
* Copyright (c) 2012 Microsoft Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
package microsoft.exchange.webservices.data.misc;
import microsoft.exchange.webservices.data.core.exception.misc.ArgumentException;
import java.util.Calendar;
import java.util.Date;
/**
* Represents time.
*/
public final class Time {
/**
* The hours.
*/
private int hours;
/**
* The minutes.
*/
private int minutes;
/**
* The seconds.
*/
private int seconds;
/**
* Initializes a new instance of Time.
*/
protected Time() {
}
/**
* Initializes a new instance of Time.
*
* @param minutes The number of minutes since 12:00AM.
* @throws ArgumentException the argument exception
*/
protected Time(int minutes) throws ArgumentException {
this();
if (minutes < 0 || minutes >= 1440) {
throw new ArgumentException(String.format("%s,%s", "minutes must be between 0 and 1439, inclusive.", "minutes"));
}
this.hours = minutes / 60;
this.minutes = minutes % 60;
this.seconds = 0;
}
/**
* Initializes a new instance of Time.
*
* @param dateTime the date time
* @throws ArgumentException the argument exception
*/
public Time(Date dateTime) throws ArgumentException {
if (dateTime != null) {
Calendar cal = Calendar.getInstance();
cal.setTime(dateTime);
this.setHours(cal.get(Calendar.HOUR));
this.setMinutes(cal.get(Calendar.MINUTE));
this.setSeconds(cal.get(Calendar.SECOND));
}
}
/**
* Initializes a new instance of Time.
*
* @param hours the hours
* @param minutes the minutes
* @param seconds the seconds
*/
protected Time(int hours, int minutes, int seconds) {
this();
this.hours = hours;
this.minutes = minutes;
this.seconds = seconds;
}
/**
* Convert Time to XML Schema time.
*
* @return String in XML Schema time format
*/
public String toXSTime() {
return String.format("%s,%s,%s,%s", "{0:00}:{1:00}:{2:00}",
this.getHours(), this
.getMinutes(), this.getSeconds());
}
/**
* Converts the time into a number of minutes since 12:00AM.
*
* @return The number of minutes since 12:00AM the time represents.
*/
protected int convertToMinutes() {
return this.getMinutes() + (this.getHours() * 60);
}
/**
* Gets the hours.
*
* @return the hours
*/
protected int getHours() {
return this.hours;
}
/**
* sets the hours.
*
* @param value the new hours
* @throws ArgumentException the argument exception
*/
protected void setHours(int value) throws ArgumentException {
if (value >= 0 && value < 24) {
this.hours = value;
} else {
throw new ArgumentException("Hour must be between 0 and 23.");
}
}
/**
* Gets the minutes.
*
* @return the minutes
*/
protected int getMinutes() {
return this.minutes;
}
/**
* Sets the minutes.
*
* @param value the new minutes
* @throws ArgumentException the argument exception
*/
protected void setMinutes(int value) throws ArgumentException {
if (value >= 0 && value < 60) {
this.minutes = value;
} else {
throw new ArgumentException("Minute must be between 0 and 59.");
}
}
/**
* Gets the seconds.
*
* @return the seconds
*/
protected int getSeconds() {
return this.seconds;
}
/**
* Sets the seconds.
*
* @param value the new seconds
* @throws ArgumentException the argument exception
*/
protected void setSeconds(int value) throws ArgumentException {
if (value >= 0 && value < 60) {
this.seconds = value;
} else {
throw new ArgumentException("Second must be between 0 and 59.");
}
}
}