Rss & SiteMap

课外天地 李树青 http://www.njcie.com

李树青 论坛 南京 财经 课外天地
共1 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:程序代码——具有累加功能的时间类练习

1楼
admin 发表于:2007/4/4 7:58:46

说明:时间类的练习
1)定义时间类,封装小时、分钟和秒
2)重载构造函数,支持初始化
3)重写toString方法,支持格式化输出
4)定义add方法,实现时间累加,在累加后,小时、分钟和秒自动求模,并且能够向上进值
5)定义setTime方法,实现时间赋值,能够自动求模,并且能向上进值
6)能够在任意设置时间操作后进行验证,能够自动求模,并且能向上进值

注意:如对于应用程序:
public class exec
{
public static void main(String[] args)
{
  Time t=new Time();
  t.setTime(10,60,60);
  t.add(10,60,60);
  System.out.println(t);
}
}

输出为:10:02:00PM

代码为:

public class Time
{
private int hour;
private int minute;
private int second;

public Time()
{
  hour=0;
  minute=0;
  second=0;
}

public Time(int h,int m,int s)
{
  setHour(h);
  setMinute(m);
  setSecond(s);
}


public void setHour(int h)
{
  hour=h;
  validate();
}

public int getHour()
{
  return hour;
}

public void setMinute(int m)
{
  minute=m;
  validate();
}

public int getMinute()
{
  return minute;
}
public void setSecond(int s)
{
  second=s;
  validate();
}

public int getSecond()
{
  return second;
}

public String toString()
{
  java.text.DecimalFormat df=new java.text.DecimalFormat("00");
  return df.format(hour%12)+":"+df.format(minute)+":"+df.format(second)+(hour<12?"AM":"PM");  
}

public void add(int h,int m,int s)
{
  second+=s;
  minute+=m;
  hour+=h;
  validate();
}

public void setTime(int h,int m,int s)
{
  second=s;
  minute=m;
  hour=h;
  validate();
  
}

private void validate()
{
  if(second>=60)
  {
   minute+=second/60;
   second=second%60;
  }
  if(minute>=60)
  {
   hour+=minute/60;
   minute=minute%60;
  }  
  if(hour>=24)
  {
   hour=hour%24;
  }
}
}


 

[此贴子已经被作者于2010-12-12 08:13:59编辑过]
共1 条记录, 每页显示 10 条, 页签: [1]

Copyright ©2002 - 2016 课外天地.Net
Powered By Dvbbs Version 8.3.0
Processed in .01563 s, 2 queries.