课外天地 李树青学习天地Java程序语言课件 → 程序代码——具有累加功能的时间类练习


  共有17904人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1945 积分:26736 威望:0 精华:34 注册:2003/12/30 16:34:32
程序代码——具有累加功能的时间类练习  发帖心情 Post By: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编辑过]

 回到顶部