⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ganttcalendar.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
/*************************************************************************** GanttCalendar.java  -  description ------------------- begin                : dec 2002 copyright            : (C) 2002 by Thomas Alexandre email                : alexthomas(at)ganttproject.org ***************************************************************************//*************************************************************************** *                                                                         * *   This program 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.                                   * *                                                                         * ***************************************************************************/package net.sourceforge.ganttproject;import java.io.Serializable;import java.util.Calendar;import java.util.Date;import net.sourceforge.ganttproject.language.GanttLanguage;import net.sourceforge.ganttproject.time.gregorian.GregorianCalendar;import org.w3c.util.DateParser;import org.w3c.util.InvalidDateException;/** * Class use for calendar */public class GanttCalendar extends GregorianCalendar implements Serializable {    private GanttLanguage language = GanttLanguage.getInstance();    private boolean isFixed;    public boolean isFixed() {        return isFixed;    }    public void setFixed(boolean fixed) {        isFixed = fixed;    }    /** Default constructor */    public GanttCalendar() {        super();        set(Calendar.HOUR_OF_DAY, 0);        set(Calendar.MINUTE, 0);        set(Calendar.SECOND, 0);        set(Calendar.MILLISECOND, 0);    }    /** Constructor with a year, a month and a day */    public GanttCalendar(int year, int month, int date) {        super(year, month, date);    }    /** Copy constructor */    public GanttCalendar(GanttCalendar g) {        super(g.getYear(), g.getMonth(), g.getDate());    }    public GanttCalendar(Date date) {        super();        setTime(date);    }    // ////////////////////////////////////////////////////////////////////////////////////////////////////    public static GanttCalendar parseXMLDate(String s) {        GanttCalendar result = new GanttCalendar();        result.clear();        try {            Date date = DateParser.parse(s);            result.setTime(date);        } catch (InvalidDateException e) {            // Get "/" caracters            int fb = s.indexOf('/');            int sb = s.indexOf('/', fb + 1);            // Get all fiels            String d = s.substring(0, fb);            String m = s.substring(fb + 1, sb);            String y = s.substring(sb + 1);            // Set the date            result.set(Calendar.YEAR, new Integer(y).hashCode());            result.set(Calendar.MONTH, new Integer(m).hashCode() - 1);            result.set(Calendar.DATE, new Integer(d).hashCode());        }        return result;    }    /** Return a clone of the calendar */    public GanttCalendar Clone() {        GanttCalendar clone = new GanttCalendar(getTime());        clone.setFixed(isFixed());        return clone;    }    /** Return the date to A string */    public String toString() {    	//return getTime().toString();        return (language.formatShortDate(this));    	//return (language.formatDate(this));    }    public String toXMLString() {        // return getDate() + "/" + (getMonth() + 1) + "/" + getYear();        return DateParser.getIsoDateNoHours(getTime());    }    /** Return the year */    public int getYear() {        return this.get(Calendar.YEAR);    }    /** Return the month */    public int getMonth() {        return this.get(Calendar.MONTH);    }    /** Return the day */    public int getDate() {        return this.get(Calendar.DATE);    }    /** Return the day */    public int getDay() {        return this.get(Calendar.DAY_OF_MONTH);    }    /** Return the number of the day on the week */    public int getDayWeek() {        return this.get(Calendar.DAY_OF_WEEK);    }    /** Return the numbner of the week on the year */    public int getWeek() {        return this.get(Calendar.WEEK_OF_YEAR);    }    /** Return an array with all name of month */    public String[] getDayMonthLanguage() {        String[] res = new String[12];        for (int i = 0; i < 12; i++)            res[i] = language.getMonth(i);        return res;    }    /** Return an array with all name of day */    public String[] getDayWeekLanguage() {        String[] res = new String[7];        for (int i = 0; i < 7; i++)            res[i] = language.getDay(i);        return res;    }    /** Change the year of the date */    public void setYear(int y) {        this.set(Calendar.YEAR, y);    }    /** Change the month of the date */    public void setMonth(int m) {        this.set(Calendar.MONTH, m);    }    /** Change the date of the date */    public void setDay(int d) {        this.set(Calendar.DAY_OF_MONTH, d);    }    /** Add a number of day to the current date */    public void add(int dayNumber) {        this.add(Calendar.DATE, dayNumber);    }    /** Change the year of the date, and return a copy */    public GanttCalendar newAdd(int dayNumber) {        GanttCalendar gc = new GanttCalendar(getYear(), getMonth(), getDate());        gc.add(Calendar.DATE, dayNumber);        return gc;    }    /**      * @deprecated Use TimeUnit related methods     * Return the difference (in day) between two date */    public int diff(GanttCalendar d) {        int res = 0;        GanttCalendar d1;        GanttCalendar d2;        if (this.compareTo(d) == 0)            return res;        else if (compareTo(d) < 0) {            d1 = this.Clone();            d2 = new GanttCalendar(d);        } else {            d1 = new GanttCalendar(d);            d2 = this.Clone();        }        while (d1.compareTo(d2) != 0) {            d1.add(1);            res++;        }        return res;    }    /** Return the string of the month. */    public String getdayMonth() {        return language.getMonth(getMonth());    }    /** Return the string of the day. */    public String getdayWeek() {        return language.getDay(this.get(Calendar.DAY_OF_WEEK) - 1);    }    /** Return the number of day on the month */    public int getNumberOfDay() {        return this.getActualMaximum(Calendar.DATE);    }    /**     * This function returns the signal represented by an int     */    private int module(int number) {        if (number > 0)            return 1;        else if (number < 0)            return -1;        else            return 0;    }    /**     * This function compare two date     *      * @return 0 If the two date are equals     * @return -1 if the date is before when     * @return 1 if the date is after when     */    public int compareTo(GanttCalendar when) {        int[] comparissons = { Calendar.YEAR, Calendar.MONTH, Calendar.DATE };        for (int i = 0; i < comparissons.length; i++) {            switch (module(this.get(comparissons[i])                    - when.get(comparissons[i]))) {            case -1:                return -1;            case 1:                return 1;            default:                break;            }        }        return 0;    }    /** Is the date equals to when */    public boolean equals(GanttCalendar when) {    	return getTime().equals(when.getTime());    }    /** Change date to next month. */    public void goNextMonth() {        this.add(Calendar.MONTH, 1);    }    /** Change date to previous month. */    public void goPrevMonth() {        this.add(Calendar.MONTH, -1);    }    /** Change the value of a filed */    public void go(int field, int value) {        this.add(field, value);    }    /** Return the actually date */    public static String getDateAndTime() {        GanttCalendar c = new GanttCalendar();        return c.toString() + " - " + GanttLanguage.getInstance().formatTime(c);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -