Would you like to make this site your homepage? It's fast and easy... 
    
     
     Yes, Please make this my home page! 
     
 
     
     
    
     
Date Projections
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.
	 
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