/* $Id: TimeBean.java,v 1.5 2005/08/26 04:45:33 ysahara Exp $
*
* Copyright (c)ARGO 21, Corporation. 2005.  All rights reserved.
 * 
 * This file is part of Nautica Workflow.
 * 
 *  Nautica Workflow is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 * 
 *  Nautica Workflow 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
 *  GNU General Public License for more details.
 * 
 *  You should have received a copy of the GNU General Public License
 *  along with Nautica Workflow; if not, write to the Free Software
 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *  
*/
package jp.co.argo21.nautica.workflow.sample.actionform;

import java.util.Calendar;

/**
 * 時間を表すBeanクラス。
 * 
 * @author  ruchida(Argo 21, Corp.)
 * @version $Revision: 1.5 $
 * @since   Nautica Workflow 0.9
 */
public class TimeBean {
    
    /** 年 */
    private int year;
    
    /** 月 */
    private int month;
    
    /** 日 */
    private int day;
    
    /** 時間 */
    private int hour;
    
    /** 分 */
    private int minute;
    
    /** 秒 */
    private int secnod;
    
    /** 日付 */
    private int date;
    
    /**
     * コンストラクタ
     * 
     * @param calendar カレンダー
     */
    public TimeBean( Calendar calendar ) {
        this.setYear(calendar.get(Calendar.YEAR));
        this.setMonth(calendar.get(Calendar.MONTH));
        this.setDay(calendar.get(Calendar.DAY_OF_MONTH));
        this.setHour(calendar.get(Calendar.HOUR_OF_DAY));
        this.setMinute(calendar.get(Calendar.MINUTE));
        this.setSecnod(calendar.get(Calendar.SECOND));
        this.setDate(calendar.get(Calendar.DAY_OF_WEEK));
    }
    
    /**
     * コンストラクタ
     *
     */
    public TimeBean( ) {
        // 何もしない
    }
    
    /**
     * 現在の時間を表すBeanを返す。
     * 
     * @return Bean
     */
    public static TimeBean getCurrentTimeBean( ) {
        TimeBean current = new TimeBean();
        Calendar instance = Calendar.getInstance();
        instance.setTimeInMillis(System.currentTimeMillis());
        current.setYear(instance.get(Calendar.YEAR));
        current.setMonth(instance.get(Calendar.MONTH)+1);
        current.setDay(instance.get(Calendar.DAY_OF_MONTH));
        current.setHour(instance.get(Calendar.HOUR_OF_DAY));
        current.setMinute(instance.get(Calendar.MINUTE));
        current.setSecnod(instance.get(Calendar.SECOND));
        current.setDate(instance.get(Calendar.DAY_OF_WEEK));
        return current;
    }
    
    /**
     * 年を返す。
     * 
     * @return 年
     */
    public int getYear() {
        return year;
    }
    
    /**
     * 年を設定する。
     * 
     * @param year 年
     */
    public void setYear(int year) {
        this.year = year;
    }
    
    /**
     * 月を返す。
     * 
     * @return 月
     */
    public int getMonth() {
        return month;
    }
    
    /**
     * 月を設定する。
     * 
     * @param month 月
     */
    public void setMonth(int month) {
        this.month = month;
    }    
    
    /**
     * 日を返す。
     * 
	 * @return 日
	 */
	public int getDay() {
        return day;
    }
    
    /**
     * 日を設定する。
     * 
	 * @param day 日
	 */
	public void setDay( int day ) {
        this.day = day;
    }
    
    /**
     * 時間を返す。
     * 
	 * @return 時間
	 */
	public int getHour() {
        return hour;
    }
    
    /**
     * 時間を設定する。
     * 
	 * @param hour 時間
	 */
	public void setHour(int hour) {
        this.hour = hour;
    }
    
    /**
     * 分を返す。
     * 
	 * @return 分
	 */
	public int getMinute() {
        return minute;
    }
    
    /**
     * 分を設定する。
     * 
	 * @param minute 分
	 */
	public void setMinute(int minute) {
        this.minute = minute;
    }

    /**
     * 秒を返す。
     * 
	 * @return 秒
	 */
	public int getSecnod() {
        return secnod;
    }
    
    /**
     * 秒を設定する。
     * 
	 * @param secnod 秒
	 */
	public void setSecnod(int secnod) {
        this.secnod = secnod;
    }
    
    /**
     * 日付を返す。
     * 
	 * @return 日付
	 */
	public int getDate() {
        return date;
    }
    
    /**
     * 日付を設定する。
     * 
	 * @param date 日付
	 */
	public void setDate(int date) {
        this.date = date;
    }
    
    /**
     * 日付を返す。
     * 
     * @return 日付
     */
    public String getDayString() {
        return this.year+"/"+this.month+"/"+this.day;
    }
}
