telosys
Blame | Last modification | View Log | RSS feed
package org.objectweb.telosys.util;
import java.util.Calendar;
/**
* @author Laurent GUERIN
*
*/
public final class MonthCalendar
{
/** */
private MonthCalendar()
{
}
//-------------------------------------------------------------------------------
/** */
public static final int SUNDAY = 1;
/** */
public static final int MONDAY = 2;
/** */
public static final int TUESDAY = 3;
/** */
public static final int WEDNESDAY = 4;
/** */
public static final int THURSDAY = 5;
/** */
public static final int FRIDAY = 6;
/** */
public static final int SATURDAY = 7;
//-------------------------------------------------------------------------------
/** Mois ( indice : 1 à 12 ) (fr_FR)*/
private static final String[] AMONTHSFR = {"???", /* Indice 0 */
"Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août",
"Septembre", "Octobre", "Novembre", "Décembre"};
/** Mois ( indice : 1 à 12 ) (en_UK)*/
private static final String[] AMONTHSEN = {"???", /* Indice 0 */
"January", "February", "March", "April", "May", "June", "July", "August",
"September", "October", "November", "December"};
/** Jours ( indice : 1 à 7 ) (fr_FR)*/
private static final String[] ADAYSFR = {"???", /* Indice 0 */
"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"};
/** Jours ( indice : 1 à 7 ) (en_UK)*/
private static final String[] ADAYSEN = {"???", /* Indice 0 */
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
"Saturday" };
/**
private final static int $aDaysNum[] = {
Calendar.MONDAY, Calendar.TUESDAY, Calendar.WEDNESDAY, Calendar.THURSDAY, Calendar.FRIDAY, Calendar.SATURDAY, Calendar.SUNDAY } ;
**/
//-------------------------------------------------------------------------------
/**
* @param iMonth :
* @return String :
*/
public static String getMonthName(final int iMonth)
{
return getMonthName(iMonth, "EN");
}
//-------------------------------------------------------------------------------
/**
* @param iMonth :
* @param sLang :
* @return String :
*/
public static String getMonthName(final int iMonth, final String sLang)
{
//int iMonth = iMonthStd - 1 ;
if (iMonth >= 1 && iMonth <= 12)
{
if (sLang.toUpperCase().equals("FR"))
{
return AMONTHSFR[iMonth];
}
else
{
return AMONTHSEN[iMonth];
}
}
else
{
return "???";
}
}
//-------------------------------------------------------------------------------
/**
* @param iDay :
* @return String :
*/
public static String getDayName(final int iDay)
{
return getDayName(iDay, "EN");
}
//-------------------------------------------------------------------------------
/**
* @param iDay :
* @param sLang :
* @return String :
*/
public static String getDayName(final int iDay, final String sLang)
{
if (iDay >= 1 && iDay <= 7)
{
if (sLang.toUpperCase().equals("FR"))
{
return ADAYSFR[iDay];
}
else
{
return ADAYSEN[iDay];
}
}
else
{
return "???";
}
}
//-------------------------------------------------------------------------------
/**
* @param iMonthStd :
* @param iYear :
* @param iFirstDayOfWeek :
* @return int[][] :
*/
public static int[][] getCalMonth(final int iMonthStd, final int iYear, final int iFirstDayOfWeek)
{
int iCol = 0;
int iLig = 0;
int[][] cal = new int[7][7]; // 7 colonnes ( 1 par jour ) + 7 lignes ( 1 ligne de no de jours + 6 semaines )
Calendar calendar = Calendar.getInstance();
int iMonth = iMonthStd - 1; // Dans le calendrier le mois va de 0 à 11
calendar.set(iYear, iMonth, 1); // Premier jour du mois demandé
//--- Ligne 0 : numeros des NOMS DES JOURS
iCol = 0;
for (int iJour = iFirstDayOfWeek; iJour <= 7; iJour++)
{
cal[0][iCol++] = iJour;
}
for (int iJour = 1; iJour < iFirstDayOfWeek; iJour++)
{
cal[0][iCol++] = iJour;
}
//--- Lignes 1 a 6 : numeros des JOURS DANS LE MOIS
iCol = 0;
iLig = 1;
do
{
if (calendar.get(Calendar.DAY_OF_MONTH) == 1) //--- 1er Jour du mois
{
//--- 0 à N cases vides avant le premier jour
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
int delta = 0;
if (dayOfWeek > iFirstDayOfWeek)
{
delta = (dayOfWeek - iFirstDayOfWeek);
}
if (dayOfWeek < iFirstDayOfWeek)
{
delta = 7 - (iFirstDayOfWeek - dayOfWeek);
}
for (int iVoid = 0; iVoid < delta; iVoid++)
{
cal[iLig][iCol++] = 0; // VOID
}
}
//--- Case contenant le jour du calendier
cal[iLig][iCol++] = calendar.get(Calendar.DAY_OF_MONTH); // JOUR DANS LE MOIS
if (iCol == 7) // Après la colonne 7
{
//--- Changement de ligne
iLig++;
iCol = 0;
}
//--- Jour suivant dans le calendrier
calendar.add(Calendar.DAY_OF_MONTH, +1);
}
while (calendar.get(Calendar.MONTH) == iMonth);
//--- Complément sur la dernière ligne
while (iCol < 7)
{
cal[iLig][iCol++] = 0; // VOID
}
return cal;
}
//-------------------------------------------------------------------------------
}
Generated by GNU enscript 1.6.4.