Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import java.util.*; // required for date function
- import javax.swing.*; // for JFrame
- public class TimeWords {
- /**
- * Program: TimeWords.java by Chris Clarke
- * Created: 15.07.2009
- * Purpose: Display the time in words
- * Note: Uses my "NumberToWord" class
- * Modified: 21.11.2012
- */
- public static void main(String[] args) {
- TimeWordsJFrame frame = new TimeWordsJFrame();
- frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
- // Set to a reasonable size.
- frame.setSize(1024, 768);
- frame.setVisible(true);
- }
- }
- class TimeWordsJFrame extends JFrame {
- public TimeWordsJFrame() {
- setTitle("TimeWords by Chris Clarke");
- }
- public void paint(Graphics g) {
- Font f = new Font("TimesNewRoman", Font.ITALIC, 36);
- g.setFont(f);
- GregorianCalendar now = new GregorianCalendar();
- NumberToWord ntw = new NumberToWord();
- int currentSecond = -1;
- do {
- now = new GregorianCalendar();
- int secNow = now.get(Calendar.SECOND);
- if (currentSecond != secNow) { // the second has changed
- currentSecond = secNow;
- g.setColor(Color.WHITE);
- g.fillRect(0, 0, WIDTH, HEIGHT);
- g.setColor(Color.BLACK);
- g.drawString(ntw.getTimeInWords(now.get(Calendar.HOUR_OF_DAY),
- now.get(Calendar.MINUTE)), 150, BASELINE);
- }
- } while (true);
- } // end paint
- public static final int WIDTH=1024;
- public static final int HEIGHT=768;
- public static final int BASELINE=380;
- public static final int SIZE=36; // fontsize
- } // end class TimeWordsJFrame
- class NumberToWord {
- /**
- * NumberToWord class created by Chris Clarke July 2009
- * For use with my TimeWords Java program
- */
- public String getTimeInWords(int hour, int minute) {
- String time = "It\'s "; // or you could say "The time is "
- if (minute==0) { // on the hour
- if (hour == 12)
- time += "twelve noon";
- else if (hour == 24 || hour == 0)
- time += "midnight";
- else
- // output text ... o'clock
- time += getHour(hour)+" o\'clock"+getVerbose(hour);
- } else { // not on the hour
- // it's ... minutes to the next hour
- if (minute>32) {
- hour++;
- }
- if (minute==58||minute==59||minute==1||minute==2) {
- time += getMinute(minute)+" "+getHour(hour)+getVerbose(hour);
- return time;
- }
- time += getApproximateMinute(minute)+" "+getHour(hour)+getVerbose(hour);
- }
- return time;
- }
- public String getConciseTimeInWords(int hour, int minute) {
- String time="The time is ";
- if (minute==0) { // on the hour
- // output text ... o'clock
- time += getHour(hour)+" o\'clock";
- } else { // not on the hour
- // it's ... minutes to the next hour
- if (minute>30) {
- hour++;
- }
- time += getMinute(minute)+" "+getHour(hour);
- }
- return time;
- }
- public String getMinute(int minute) {
- String word="";
- switch (minute) {
- case 0: word = ""; break;
- case 1: word = "a minute past"; break;
- case 2: word = "two minutes past"; break;
- case 3: word = "three minutes past"; break;
- case 4: word = "four minutes past"; break;
- case 5: word = "five past"; break;
- case 6: word = "six minutes past"; break;
- case 7: word = "seven minutes past"; break;
- case 8: word = "eight minutes past"; break;
- case 9: word = "nine minutes past"; break;
- case 10: word = "ten past"; break;
- case 11: word = "eleven minutes past"; break;
- case 12: word = "twelve minutes past"; break;
- case 13: word = "thirteen minutes past"; break;
- case 14: word = "fourteen minutes past"; break;
- case 15: word = "quarter past"; break;
- case 16: word = "sixteen minutes past"; break;
- case 17: word = "seventeen minutes past"; break;
- case 18: word = "eighteen minutes past"; break;
- case 19: word = "nineteen minutes past"; break;
- case 20: word = "twenty past"; break;
- case 21: word = "twenty-one minutes past"; break;
- case 22: word = "twenty-two minutes past"; break;
- case 23: word = "twenty-three minutes past"; break;
- case 24: word = "twenty-four minutes past"; break;
- case 25: word = "twenty-five past"; break;
- case 26: word = "twenty-six minutes past"; break;
- case 27: word = "twenty-seven minutes past"; break;
- case 28: word = "twenty-eight minutes past"; break;
- case 29: word = "twenty-nine minutes past"; break;
- case 30: word = "half past"; break;
- case 31: word = "twenty-nine minutes to"; break;
- case 32: word = "twenty-eight minutes to"; break;
- case 33: word = "twenty-seven minutes to"; break;
- case 34: word = "twenty-six minutes to"; break;
- case 35: word = "twenty-five to"; break;
- case 36: word = "twenty-four minutes to"; break;
- case 37: word = "twenty-three minutes to"; break;
- case 38: word = "twenty-two minutes to"; break;
- case 39: word = "twenty-one minutes to"; break;
- case 40: word = "twenty to"; break;
- case 41: word = "nineteen minutes to"; break;
- case 42: word = "eighteen minutes to"; break;
- case 43: word = "seventeen minutes to"; break;
- case 44: word = "sixteen minutes to"; break;
- case 45: word = "quarter to"; break;
- case 46: word = "fourteen minutes to"; break;
- case 47: word = "thirteen minutes to"; break;
- case 48: word = "twelve minutes to"; break;
- case 49: word = "eleven minutes to"; break;
- case 50: word = "ten to"; break;
- case 51: word = "nine minutes to"; break;
- case 52: word = "eight minutes to"; break;
- case 53: word = "seven minutes to"; break;
- case 54: word = "six minutes to"; break;
- case 55: word = "five to"; break;
- case 56: word = "four minutes to"; break;
- case 57: word = "three minutes to"; break;
- case 58: word = "two minutes to"; break;
- case 59: word = "a minute to"; break;
- default: word = "MinuteError";
- }
- return word;
- }
- public String getApproximateMinute(int minute) {
- String word="";
- switch (minute) {
- case 0: word = ""; break;
- case 1:
- case 2: word = "just gone"; break;
- case 3:
- case 4: word = "nearly five past"; break;
- case 5: word = "five past"; break;
- case 6:
- case 7: word = "just gone five past"; break;
- case 8:
- case 9: word = "nearly ten past"; break;
- case 10: word = "ten past"; break;
- case 11:
- case 12: word = "just gone ten past"; break;
- case 13:
- case 14: word = "nearly quarter past"; break;
- case 15: word = "quarter past"; break;
- case 16:
- case 17: word = "just gone quarter past"; break;
- case 18:
- case 19: word = "nearly twenty past"; break;
- case 20: word = "twenty past"; break;
- case 21:
- case 22: word = "just gone twenty past"; break;
- case 23:
- case 24: word = "nearly twenty-five past"; break;
- case 25: word = "twenty-five past"; break;
- case 26:
- case 27: word = "just gone twenty-five past"; break;
- case 28:
- case 29: word = "nearly half past"; break;
- case 30: word = "half past"; break;
- case 31:
- case 32: word = "just gone half past"; break;
- case 33:
- case 34: word = "nearly twenty-five to"; break;
- case 35: word = "twenty-five to"; break;
- case 36:
- case 37: word = "just gone twenty-five to"; break;
- case 38:
- case 39: word = "nearly twenty to"; break;
- case 40: word = "twenty to"; break;
- case 41:
- case 42: word = "just gone twenty to"; break;
- case 43:
- case 44: word = "nearly quarter to"; break;
- case 45: word = "quarter to"; break;
- case 46:
- case 47: word = "just gone quarter to"; break;
- case 48:
- case 49: word = "nearly ten to"; break;
- case 50: word = "ten to"; break;
- case 51:
- case 52: word = "just gone ten to"; break;
- case 53:
- case 54: word = "nearly five to"; break;
- case 55: word = "five to"; break;
- case 56:
- case 57: word = "just gone five to"; break;
- case 58:
- case 59: word = "nearly"; break;
- default: word = "Error";
- }
- return word;
- }
- public String getHour(int hr) {
- if (hr>12) hr -= 12;
- switch (hr) {
- case 0: return "twelve";
- case 1: return "one";
- case 2: return "two";
- case 3: return "three";
- case 4: return "four";
- case 5: return "five";
- case 6: return "six";
- case 7: return "seven";
- case 8: return "eight";
- case 9: return "nine";
- case 10: return "ten";
- case 11: return "eleven";
- case 12: return "twelve";
- default: return "GetHour error!";
- }
- }
- public String getVerbose(int hour) {
- String word = "";
- switch (hour) {
- case 0: word = " midnight"; break;
- case 1: word = " in the morning"; break;
- case 2: word = " in the morning"; break;
- case 3: word = " in the morning"; break;
- case 4: word = " in the morning"; break;
- case 5: word = " in the morning"; break;
- case 6: word = " in the morning"; break;
- case 7: word = " in the morning"; break;
- case 8: word = " in the morning"; break;
- case 9: word = " in the morning"; break;
- case 10: word = " in the morning"; break;
- case 11: word = " in the morning"; break;
- case 12: word = " mid-day"; break;
- case 13: word = " in the afternoon"; break;
- case 14: word = " in the afternoon"; break;
- case 15: word = " in the afternoon"; break;
- case 16: word = " in the afternoon"; break;
- case 17: word = " in the afternoon"; break;
- case 18: word = " in the evening"; break;
- case 19: word = " in the evening"; break;
- case 20: word = " in the evening"; break;
- case 21: word = " in the evening"; break;
- case 22: word = " at night"; break;
- case 23: word = " at night"; break;
- case 24: word = " at night"; break;
- default: word = "VerboseError!";
- }
- return word;
- }
- } // end class NumberToWord
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement