none
收费时间段 RRS feed

  • 常规讨论

  • 我遇到一个问题,大概是这样的:

    在一个停车场里,收费标准是这样的  0点-6点 收3元一小时  ; 6-16点收 5元一小时 ; 16-24点 收 4元一小时

    那么这个时间段要用什么样的结构来存储啊??我想单一变量是很难表示的,很可能要用结构体!

    比如说:

    struct TimeType
    {
        DateTime first ;
        DateTime Last ;
    }
    各位大侠,能否给小弟一点提示啊?纠结中!
    2012年2月19日 13:08

全部回复

  • Hi 星空雏菊,

       我建议你可以使用枚举类型,这样的在任何时候使用该枚举都会用收费的金额来替换,非常容易写完代码还能理解当时写的意图。

           public enum TimeDuration
           {
             Time0_6=3,//0点到六点 收取3元
             Time6_16=5,//6点到十六点 收取5元
             Time16_24=4,//十六点到二十四点,收取四元
           }

      如果用结构体的话,你可以使用以下的结构体,然后用这个变量去定义实例变量,再定义你所说的三个

    标准。

     struct constTimeDuration
            {
                int first;
                int Last;
                int cost;
            }

     


    orichisonic http://blog.csdn.net/orichisonic If a post answers your question, please click "Mark As Answer" on that post and "Mark as Helpful".

    2012年2月20日 8:41
  • 但是我又有一个问题了:用枚举的话,那就固定了时段,不能变化,万一我的用户要改变这个时间段又怎么办啊??
    2012年2月20日 14:19
  • Hi 星空雏菊,

    按照我的理解,在枚举内设置的知识某一个时间段,例如A的的单价 ,但是这个时间A处于何种时间段,并没有具体设置;而时间段的处理工作,按照这种思路是在后面的逻辑中进行判断的。

    如果需要设置时间段,您可以考虑使用结构体:

    struct TimeSection { public int _startHour; public int _endHour; public int _price; // 此处也可以省略构造函数部分。 public TimeSection(int startHour, int endHour, int price) { _startHour = startHour; _endHour = endHour; _price = price; } }

    TimeSection timeSection1 = new TimeSection{ _startHour = 0,_endHour=6,_price =5}; TimeSection timeSection2 = new TimeSection{ _startHour = 6,_endHour=16,_price =4}; TimeSection timeSection3 = new TimeSection{ _startHour = 16,_endHour=24,_price =3};

    希望对您有所帮助。


    Yoyo Jiang[MSFT]
    MSDN Community Support | Feedback to us

    2012年2月21日 7:18
    版主