Date Projections

Java Snippet

Date Projections

Ever wanted to know the date from given criteria, e.g the 1st Sunday in December 2003.

Try it here (this sample is an applet)

If you have difficulty loading the applet, click the links to vb or vbscript, to try the scripting version.

Your browser does Not support Java Applets.

Click to see versions in    vb     vbscript     java/applet

Java Code

This code uses swing, and uses combo boxes instead of list boxes (easier to load the items as an array)

Screenshot

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Calendar;
import java.text.SimpleDateFormat;
 
public class DateProjections extends JFrame implements ActionListener
{
  private static String weeks[] = {"1st","2nd","3rd","4th","Last"};
  private static String days[] = {"Sunday","Monday","Tuesday",
                         "Wednesday","Thursday","Friday","Saturday"};
  private static String months[] = {"January","February","March","April",
  "May","June","July","August","September","October","November","December"};
  private static String years[] =  {"2000","2001","2002","2003","2004",
                             "2005","2006","2007","2008","2009","2010"};
  private static JComboBox cboWeek = new JComboBox(weeks);
  private static JComboBox cboDay = new JComboBox(days);
  private static JComboBox cboMonth = new JComboBox(months);
  private static JComboBox cboYear = new JComboBox(years);
  private static JLabel selection = new JLabel("Projected date is:   00-00-0000");
  private static JButton btnGo = new JButton("Project Date");
  Calendar cal = Calendar.getInstance();
  SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy");
 
  public DateProjections()
  {
    super("Date Projections");
    setSize(500,300);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setVisible(true);
    Container frame = getContentPane();
    frame.setLayout(new BorderLayout());
    JPanel upper = new JPanel(new FlowLayout());
    btnGo.addActionListener(this);
    upper.add(cboWeek);
    upper.add(cboDay);
    upper.add(cboMonth);
    upper.add(cboYear);
    JPanel lower = new JPanel();
    lower.setPreferredSize(new Dimension(300,40));
    lower.add(btnGo);
    lower.add(selection);
    frame.add(upper,BorderLayout.NORTH);
    frame.add(lower,BorderLayout.SOUTH);
    pack();
    setContentPane(frame);
  }
 
  public void actionPerformed(ActionEvent ae)
  {
    int wk = 1 + cboWeek.getSelectedIndex();
    int dy = 1 + cboDay.getSelectedIndex();
    int mth = cboMonth.getSelectedIndex();
    int yr = 2000 + cboYear.getSelectedIndex();
 
    if(wk==0 || dy==0 || mth==-1 || yr==1999)
    {
      selection.setText("details missing");
    }
    else
    {
      if(wk == 5)
      {
        mth++;
        wk = 0;
      }
      cal.set(yr,mth,1);
      if(cal.get(cal.DAY_OF_WEEK) <= dy) wk--;
      cal.add(cal.DATE,-(cal.get(cal.DAY_OF_WEEK)-dy)+(7*wk));
      selection.setText("Projected date is:   " + sdf.format(cal.getTime()));
    }
  }
 
  public static void main(String args[])
  {
    DateProjections dp = new DateProjections();
  }
}


back     top   main page    vb snippets page      java snippets page     vbscript snippets page   email    Page last modified