Tag Archives: j2ee

getPrevSaturday

Dealing width dates has always been tricky; recently I needed a way to find the first saturday of the previous week since a given date. Here’s a handy method to get the first occurrence of “Saturday”. If sunday is ‘1′ and saturday is ‘7′ and also if you use Calendar (you should use GregorianCalendar), January is ‘0′ and December is ‘11′… i spent half an hour trying to understand why today’s DAY_OF_WEEK was giving me ‘2′ (Tuesday) while I was expecting 6. Looking at the API you get that today’s MONTH is 10. If you say .set(2010,10,29) you’re setting the calendar to november… d’oh.

1
2
3
4
5
6
7
8
9
10
11
 public Calendar getPrevSaturday(Calendar in) {
   Calendar internal = in;
   Calendar prevSat = Calendar.getInstance();
   for(int i = 1; i <= 7; i ++) {
	   internal.add(Calendar.DATE, - 1);
	   if(internal.get(Calendar.DAY_OF_WEEK) == 7) // is it Saturday? then break and assign that date to our prevSat var
		break;
   }
   prevSat.set(internal.get(Calendar.YEAR), internal.get(Calendar.MONTH), internal.get(Calendar.DAY_OF_MONTH));
   return prevSat;
 }

Ok, how do you use it?

1
2
3
4
5
Calendar dataDummy = Calendar.getInstance(); // this is now.
Calendar prevSat = getPrevSaturday(dataDummy);
System.out.println(prevSat);
// if today is 2010 OCTOBER 29
// then the previous Saturday was 2010 OCTOBER 23

Model-View-Controller

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package net.gcmingati.jsp.beans;
import java.util.*;
public class RoomBean implements java.io.Serializable {
    private static int index = -1;
    private List staffNames;
	public static void main(String [] args)
	{
		RoomBean rb = new RoomBean();
		rb.getStaffNames();
	}
    public RoomBean() {
        initStaff();
    }
    public List getStaffNames() {
		for (int i=0; i<staffNames.size(); i++)
		{
			//return (String) staffNames.get(index);
			System.out.println((String) staffNames.get(i));
		}
        return staffNames;
    }
    private void initStaff() {
        staffNames = new ArrayList();
        staffNames.add("Gian Carlo Mingati");
        staffNames.add("Francesco D.");
        staffNames.add("Fabrizio L.");
    }
}

Un semplice esercizio con la sintassi Java; con questa classe (o JavaBean), visualizziamo gli elementi di un array (di stringhe) su una pagina JSP (in locale con Jakarta Tomcat) per mezzo dei tags JSTL e del linguaggio di espressione EL.

1
2
3
4
5
6
7
8
<jsp:useBean id="stanza" class="net.gcmingati.jsp.beans.RoomBean" />
<ul>
<c:forEach items="${stanza.staffNames}" var="selezione">
	<li>
		<c:out value="${selezione}"/>
	</li>
</c:forEach>
</ul>

E’ che sono stato abbastanza fortunato da poter seguire – obbligatoriamente – un corso di quattro settimane sulla programmazione Object-Oriented, ed in particolare su J2EE (Java Enterprise Edition), ed in particolare sull’utilizzo del framework Java che usiamo qui per sviluppare applicazioni; in partica è Struts 1.2 con una serie di plugins.

Un’esperienza che è giusto definire tale, che ha subito stimolato tutta una serie di considerazioni tra le quali, la più importante è che – con Java si può fare qualsiasi cosa.
Il bello é che comunque i concetti di base sono applicabili a qualsiasi linguaggio di programmazione e una volta che sai cosa vuoi ottenere e sai come scriverlo, il solo limite è la tua fantasia; insomma, passo molto volentieri dalla ricerca sul DOM scripting a quella su come creare applicazioni J2EE basate sul design-pattern Model-View-Controller.