LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 669|回复: 2

请教时间类的写法

[复制链接]
发表于 2005-4-10 17:58:18 | 显示全部楼层 |阅读模式
题目:
Time 类
    其中有两个私有成员变量 hour 和minute 类型都是int
    写一个构造函数给这两个成员变量赋初值,假设两个参数的值都是合理的。
    例如hour的范围都是在0~23之间,而minute都是在0~59之间。
    写一个static方法叫做difference, 这个方法接受两个参数t1和t2,返回t1跟t2之间相差的分钟数。
    例如,t1 = 6:35 而t2 = 8:20那么这个方法的返回值是105。120-15 = 105
    写一个toString()方法把一个时间对象转变为格式为08:25或者10:02。
我写的代码:(但有问题,望大虾指点一下。)
//Time.java

public class Time{
    int hour;
    int minute;

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

    Time(int h, int m) {
        hour = h;
        minute = m;
    }

    public static int difference(Time t1, Time t2) {
        return (t2.hour - t1.hour) * 60 + (t2.minute - t1.minute);
    }

    public static String toString(Time t1, Time t2) {
        if ( difference(t1,t2)/60 < 10 ){
            if(difference(t1,t2)%60 < 10)
                    return "0" + (difference(t1,t2)/60)
                            +":" + "0"
                            +(difference(t1,t2) - difference(t1,t2)/60*60);
            else if(difference(t1,t2)%60 >= 10)
                    return "0" + (difference(t1,t2)/60)
                            +":"
                              +(difference(t1,t2) - difference(t1,t2)/60*60);
            }
        else if( difference(t1,t2)/60 >= 10){
            if ( difference(t1,t2)/60 < 10 )
                if(difference(t1,t2)%60 < 10)
                    return  (difference(t1,t2)/60)
                            +":" + "0"
                            +(difference(t1,t2) - difference(t1,t2)/60*60);
                else if(difference(t1,t2)%60 >= 10)
                    return  + (difference(t1,t2)/60)
                            +":"
                              +(difference(t1,t2) - difference(t1,t2)/60*60);
        }
        
    }
    public static void main(String arg[]){
        //display 01:01
        System.out.println(Time.toString(new Time(1,1), new Time(2,2)));
        //display 01:10
        System.out.println(Time.toString(new Time(2,2), new Time(3,12)));
        //display 10:01
        System.out.println(Time.toString(new Time(3,3), new Time(13,3)));
        //display 10:10
        System.out.println(Time.toString(new Time(4,4), new Time(14,14)));
        //display 01:45
        System.out.println(Time.toString(new Time(5,30), new Time(7,15)));
    }
}
发表于 2005-4-10 18:50:04 | 显示全部楼层
静态方法只能访问静态变量、常量。
回复 支持 反对

使用道具 举报

发表于 2005-4-10 18:56:18 | 显示全部楼层

  1. public class Time{
  2.     int hour;
  3.     int minute;

  4.     Time() {
  5.         hour = 0;
  6.         minute = 0;
  7.     }

  8.     Time(int h, int m) {
  9.         hour = h;
  10.         minute = m;
  11.     }

  12.     public int difference(Time t1, Time t2) {
  13.         return (t2.hour - t1.hour) * 60 + (t2.minute - t1.minute);
  14.     }

  15.     public  String toString(Time t1, Time t2) {
  16.         int diff = difference(t1, t2) ;
  17.         int shi = diff/60 ;
  18.         int fen = diff%60 ;

  19.         String hou, min ;
  20.         if(shi < 10) {
  21.             hou = "0" + shi ;
  22.         } else {
  23.             hou = "" + shi ;
  24.         }
  25.         if(fen < 10) {
  26.             min = "0" + fen ;
  27.         } else {
  28.             min = "" + fen ;
  29.         }
  30.         return hou + ":" + min ;
  31.     }
  32.     public static void main(String arg[]){
  33.         Time a = new Time() ;
  34.         //display 01:01
  35.         System.out.println(a.toString(new Time(1,1), new Time(2,2)));
  36.         //display 01:10
  37.         System.out.println(a.toString(new Time(2,2), new Time(3,12)));
  38.         //display 10:01
  39.         System.out.println(a.toString(new Time(3,3), new Time(13,3)));
  40.         //display 10:10
  41.         System.out.println(a.toString(new Time(4,4), new Time(14,14)));
  42.         //display 01:45
  43.         System.out.println(a.toString(new Time(5,30), new Time(7,15)));
  44.     }
  45. }
复制代码


没测试,你自己试试看吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表