Date Parse
// Imports
import java.*;
import java.awt.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import java.text.*;
class DateParse
{
// * Variables
public String[] m_strMonths = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
// * Constructor
public DateParse()
{
}
// * Main
public static void main(String args[])
{
// Declare variables
DateParse dpParse = new DateParse();
// Run
dpParse.Run();
// Exit
System.exit(1);
}
// * Run
public void Run()
{
// Declare variables
NumberFormat nfFormat = NumberFormat.getInstance();
StreamTokenizer stTokens = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
String strInput = new String("");
BufferedReader brInput = new BufferedReader(new InputStreamReader(System.in));
// Setup tokenizer
stTokens.eolIsSignificant(true);
// Prompt
System.out.print("Enter a date in form MM/DD/YY or MM DD, YYYY: ");
// Try
try
{
// -- Get user input
strInput = brInput.readLine();
// -- Parse
Parse(strInput);
}
catch (IOException ioExcept)
{
System.out.println("\n\nError: " + ioExcept.toString() + "!\n\n");
System.exit(1);
}
}
// * Handle invalid input
public void InvalidInput()
{
System.out.println("\n\nError: Invalid input.\n\n");
System.exit(1);
}
// * Parse
public void Parse(String strInput)
{
// Declare variables
// Validate
if (strInput.length() == 0)
{
InvalidInput();
}
// See what mode we are in
if (IsNumeric(strInput.charAt(0)) == true)
{
ParseNumeric(strInput);
}
else
{
ParseString(strInput);
}
}
// * Determines if a character is numeric
public boolean IsNumeric(char cChar)
{
// Validate
return Character.isDigit(cChar);
}
// * Determines if a string is numeric
public boolean IsNumeric(String strString)
{
// Validate
for (int i = 0; i < strString.length(); i++)
{
if (Character.isDigit(strString.charAt(i)) == false)
{
return false;
}
}
return true;
}
// * Parse numeric
public void ParseNumeric(String strInput)
{
// Declare variables
StringBuffer strBuffer = new StringBuffer(strInput);
StringBuffer strOutput = new StringBuffer("");
String strTemp;
int nFindStart = 0, nFindEnd = 0;
Integer nTemp;
// Get the month
nFindEnd = strBuffer.indexOf("/", nFindStart);
if (nFindEnd == -1)
{
InvalidInput();
}
strTemp = strBuffer.substring(nFindStart, nFindEnd);
// -- Validate
if (IsNumeric(strTemp) == false)
{
InvalidInput();
}
if (ValidateMonth(new Integer(strTemp)) == false)
{
InvalidInput();
}
// -- Convert month
nTemp = new Integer(strTemp);
strOutput.append(ConvertMonth(nTemp.intValue()) + " ");
// Switch start and end
nFindStart = nFindEnd + 1;
// Get day
nFindEnd = strBuffer.indexOf("/", nFindStart);
if (nFindEnd == -1)
{
InvalidInput();
}
strTemp = strBuffer.substring(nFindStart, nFindEnd);
// -- Validate
if (IsNumeric(strTemp) == false)
{
InvalidInput();
}
// -- Append
strOutput.append(strTemp + ", ");
// Switch start and end
nFindStart = nFindEnd + 1;
// Get year
strTemp = strBuffer.substring(nFindStart);
// -- Validate
if (IsNumeric(strTemp) == false)
{
InvalidInput();
}
nTemp = new Integer(strTemp);
// -- Append
if (strTemp.length() == 2)
{
if (nTemp.intValue() <= 2)
{
strOutput.append("20" + strTemp);
}
else
{
strOutput.append("19" + strTemp);
}
}
else
{
strOutput.append(strTemp);
}
// Output
System.out.println("\n\n" + strOutput.toString() + "\n\n");
}
// * Parse string
public void ParseString(String strInput)
{
// Declare variables
StringBuffer strBuffer = new StringBuffer(strInput);
StringBuffer strOutput = new StringBuffer("");
String strTemp;
int nFindStart = 0, nFindEnd = 0;
Integer nTemp;
// Get the month
nFindEnd = strBuffer.indexOf(" ", nFindStart);
if (nFindEnd == -1)
{
InvalidInput();
}
strTemp = strBuffer.substring(nFindStart, nFindEnd);
// -- Validate
nTemp = new Integer(ValidateMonth(strTemp));
if (nTemp.intValue() == -1)
{
InvalidInput();
}
// -- Append
strOutput.append(nTemp.toString() + "/");
// Switch start and end
nFindStart = nFindEnd + 1;
// Get day
nFindEnd = strBuffer.indexOf(", ", nFindStart);
if (nFindEnd == -1)
{
InvalidInput();
}
strTemp = strBuffer.substring(nFindStart, nFindEnd);
// -- Append
strOutput.append(strTemp + "/");
// Switch start and end
nFindStart = nFindEnd + 2;
// Get year
strTemp = strBuffer.substring(nFindStart);
// -- Validate
if (IsNumeric(strTemp) == false)
{
InvalidInput();
}
// -- Append
strOutput.append(strTemp);
// Output
System.out.println("\n\n" + strOutput.toString() + "\n\n");
}
// * Convert month
public String ConvertMonth(int nMonth)
{
// Convert
return m_strMonths[nMonth - 1];
}
// * Validate month
public boolean ValidateMonth(Integer nMonth)
{
// Validate
if (nMonth.intValue() >= 1 || nMonth.intValue() <= 12)
{
return true;
}
return false;
}
// * Validate month
public int ValidateMonth(String strMonth)
{
// Go through all months
for (int i = 0; i < m_strMonths.length; i++)
{
if (m_strMonths[i].equalsIgnoreCase(strMonth) == true)
{
return i + 1;
}
}
return -1;
}
}
import java.*;
import java.awt.*;
import java.io.*;
import java.util.*;
import java.lang.*;
import java.text.*;
class DateParse
{
// * Variables
public String[] m_strMonths = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
// * Constructor
public DateParse()
{
}
// * Main
public static void main(String args[])
{
// Declare variables
DateParse dpParse = new DateParse();
// Run
dpParse.Run();
// Exit
System.exit(1);
}
// * Run
public void Run()
{
// Declare variables
NumberFormat nfFormat = NumberFormat.getInstance();
StreamTokenizer stTokens = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
String strInput = new String("");
BufferedReader brInput = new BufferedReader(new InputStreamReader(System.in));
// Setup tokenizer
stTokens.eolIsSignificant(true);
// Prompt
System.out.print("Enter a date in form MM/DD/YY or MM DD, YYYY: ");
// Try
try
{
// -- Get user input
strInput = brInput.readLine();
// -- Parse
Parse(strInput);
}
catch (IOException ioExcept)
{
System.out.println("\n\nError: " + ioExcept.toString() + "!\n\n");
System.exit(1);
}
}
// * Handle invalid input
public void InvalidInput()
{
System.out.println("\n\nError: Invalid input.\n\n");
System.exit(1);
}
// * Parse
public void Parse(String strInput)
{
// Declare variables
// Validate
if (strInput.length() == 0)
{
InvalidInput();
}
// See what mode we are in
if (IsNumeric(strInput.charAt(0)) == true)
{
ParseNumeric(strInput);
}
else
{
ParseString(strInput);
}
}
// * Determines if a character is numeric
public boolean IsNumeric(char cChar)
{
// Validate
return Character.isDigit(cChar);
}
// * Determines if a string is numeric
public boolean IsNumeric(String strString)
{
// Validate
for (int i = 0; i < strString.length(); i++)
{
if (Character.isDigit(strString.charAt(i)) == false)
{
return false;
}
}
return true;
}
// * Parse numeric
public void ParseNumeric(String strInput)
{
// Declare variables
StringBuffer strBuffer = new StringBuffer(strInput);
StringBuffer strOutput = new StringBuffer("");
String strTemp;
int nFindStart = 0, nFindEnd = 0;
Integer nTemp;
// Get the month
nFindEnd = strBuffer.indexOf("/", nFindStart);
if (nFindEnd == -1)
{
InvalidInput();
}
strTemp = strBuffer.substring(nFindStart, nFindEnd);
// -- Validate
if (IsNumeric(strTemp) == false)
{
InvalidInput();
}
if (ValidateMonth(new Integer(strTemp)) == false)
{
InvalidInput();
}
// -- Convert month
nTemp = new Integer(strTemp);
strOutput.append(ConvertMonth(nTemp.intValue()) + " ");
// Switch start and end
nFindStart = nFindEnd + 1;
// Get day
nFindEnd = strBuffer.indexOf("/", nFindStart);
if (nFindEnd == -1)
{
InvalidInput();
}
strTemp = strBuffer.substring(nFindStart, nFindEnd);
// -- Validate
if (IsNumeric(strTemp) == false)
{
InvalidInput();
}
// -- Append
strOutput.append(strTemp + ", ");
// Switch start and end
nFindStart = nFindEnd + 1;
// Get year
strTemp = strBuffer.substring(nFindStart);
// -- Validate
if (IsNumeric(strTemp) == false)
{
InvalidInput();
}
nTemp = new Integer(strTemp);
// -- Append
if (strTemp.length() == 2)
{
if (nTemp.intValue() <= 2)
{
strOutput.append("20" + strTemp);
}
else
{
strOutput.append("19" + strTemp);
}
}
else
{
strOutput.append(strTemp);
}
// Output
System.out.println("\n\n" + strOutput.toString() + "\n\n");
}
// * Parse string
public void ParseString(String strInput)
{
// Declare variables
StringBuffer strBuffer = new StringBuffer(strInput);
StringBuffer strOutput = new StringBuffer("");
String strTemp;
int nFindStart = 0, nFindEnd = 0;
Integer nTemp;
// Get the month
nFindEnd = strBuffer.indexOf(" ", nFindStart);
if (nFindEnd == -1)
{
InvalidInput();
}
strTemp = strBuffer.substring(nFindStart, nFindEnd);
// -- Validate
nTemp = new Integer(ValidateMonth(strTemp));
if (nTemp.intValue() == -1)
{
InvalidInput();
}
// -- Append
strOutput.append(nTemp.toString() + "/");
// Switch start and end
nFindStart = nFindEnd + 1;
// Get day
nFindEnd = strBuffer.indexOf(", ", nFindStart);
if (nFindEnd == -1)
{
InvalidInput();
}
strTemp = strBuffer.substring(nFindStart, nFindEnd);
// -- Append
strOutput.append(strTemp + "/");
// Switch start and end
nFindStart = nFindEnd + 2;
// Get year
strTemp = strBuffer.substring(nFindStart);
// -- Validate
if (IsNumeric(strTemp) == false)
{
InvalidInput();
}
// -- Append
strOutput.append(strTemp);
// Output
System.out.println("\n\n" + strOutput.toString() + "\n\n");
}
// * Convert month
public String ConvertMonth(int nMonth)
{
// Convert
return m_strMonths[nMonth - 1];
}
// * Validate month
public boolean ValidateMonth(Integer nMonth)
{
// Validate
if (nMonth.intValue() >= 1 || nMonth.intValue() <= 12)
{
return true;
}
return false;
}
// * Validate month
public int ValidateMonth(String strMonth)
{
// Go through all months
for (int i = 0; i < m_strMonths.length; i++)
{
if (m_strMonths[i].equalsIgnoreCase(strMonth) == true)
{
return i + 1;
}
}
return -1;
}
}





I guess being able to enter names of months... But Locale issues would plague you doing it this way I believe