1 / 46

EIFFEL TIME

EIFFEL TIME. K észítette: Árvai Mária Tünde fluke@inf.elte.hu people.inf.elte.hu / fluke/eiffel. abszolút (pl. "Mennyi az idő?") intervallum időtartam (az időintervallum hossza). 3 típus:. Abszolút. konstansok: TIME_VALUE DATE_VALUE DATE_TIME_VALUE. DATE TIME DATE_TIME.

kenda
Download Presentation

EIFFEL TIME

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EIFFELTIME Készítette: Árvai Mária Tünde fluke@inf.elte.hu people.inf.elte.hu/fluke/eiffel

  2. abszolút (pl. "Mennyi az idő?") intervallum időtartam (az időintervallum hossza) 3 típus:

  3. Abszolút konstansok: TIME_VALUE DATE_VALUE DATE_TIME_VALUE DATE TIME DATE_TIME DATE_DURATION TIME_DURATION DATE_TIME_DURATION

  4. Származás COMPARABLE ABSOLUTE DATE, TIME, DATE_TIME

  5. órák percek másodpercek TIME

  6. make(h,m,s: INTEGER) make_now: a rendszeridő lekérdezése make_by_seconds(sec: INTEGER) TIME létrehozása

  7. összehasonlítás: <,<=,>,>=,is_equal,= beállítás: set_hour(h: INTEGER)set_minute(m: INTEGER)set_second(s: INTEGER) TIME műveletei

  8. összeadás:hour_add(h: INTEGER)minute_add(m: INTEGER)second_add(s: INTEGER) rákövetkező, megelőző:hour_forth,hour_backminute_forth,minute_backsecond_forth,second_back TIME műveletei

  9. évek hónapok napokAz időszámítás kezdete: 01/01/1600 DATE

  10. make(y,m,d: INTEGER)make_month_day_year (m,d,y: INTEGER)make_day_month_year (d,m,y: INTEGER) make_now: rendszerdátum make_by_days(n: INTEGER): az eltelt napok száma DATE létrehozása

  11. összehasonlítás: <,<=,>,>=,is_equal,= beállítás: set_year(y: INTEGER)set_month(m: INTEGER)set_day(d: INTEGER)(korlátok: set_month_cut_days,set_year_cut_days) DATE műveletei

  12. összeadás:year_add(y: INTEGER)month_add(m: INTEGER)day_add(d: INTEGER)(augusztus 31. + 1 hónap = szeptember 30.) rákövetkező, megelőző:year_forth,year_backmonth_forth,month_backday_forth,day_back DATE műveletei

  13. make(y,mo,d,h,mi,s: INTEGER) make_now: rendszerdátum, rendszeridő make_by_date_time(d: DATE, t: TIME) make_by_date(d: DATE) DATE_TIME létrehozása

  14. összehasonítható elemenként változtatható DATE_TIME műveletei

  15. INTERVALLUM osztály Két ugyanolyan, ABSOLUTE-ból származó osztály példányával foglalkozik start_bound, end_bound Intervallum

  16. Származás COMPARABLE ABSOLUTE INTERVALLUM

  17. make(s,e: G) set_start_bound(s: G)set_end_bound(e: G) INTERVALLUM létrehozása

  18. összehasonlítás:is_equal: értékeket és nem referenciákat<,<=,>,>=int1 < int2, ha int1 kezdete és vége szigorúan megelőzi int2-t INTERVALLUM műveletei

  19. intersects: két intervallum metszete overlaps: van-e metszetükis_overlapped_by: az ellentéte meets, is_met_by: van-e közös határuk includes strict_includesis_included_by is_strict_included_by INTERVALLUM műveletei

  20. empty: egyenlőek a határok adott elem kapcsolata az intervallummalhas(v: G)strict_before(v: G) strict_after(v: G)before(v: G)after(v: G) INTERVALLUM műveletei

  21. union intersection gather: unió, de kell közös rész INTERVALLUM műveletei

  22. DATE_DURATIONTIME_DURATION DATE_TIME_DURATIONosztályok Időtartam

  23. Származás GROUP_ELEMENT PART_COMPARABLE DURATION DATE_DURATION TIME_DURATION DATE_TIME_DURATION

  24. make(h,m,s: INTEGER) make_by_seconds(s: INTEGER) TIME_DURATION létrehozása

  25. összehasonlítás: <,<=,>,>=,is_equal,=1:-40:0 < 0:0:1800 beállítás: set_hour(h: INTEGER)set_minute(m: INTEGER)set_second(s: INTEGER) TIME_DURATION műveletei

  26. összeadás:hour_add(h: INTEGER)minute_add(m: INTEGER)second_add(s: INTEGER) +, - TIME_DURATION műveletei

  27. konverzió: to_days25:70:600 => 1 (day)-23:-80:300 => 2 (day) time_modulo_day25:70:600 =>2:20:0-23:-80:300 => 23:45:0 TIME_DURATION műveletei

  28. canonical pozitív: óra, perc, másodperc >= 0 perc, másodperc < 60 negatív: óra, perc, másodperc <= 0 perc, másodperc > -60 kanonikus TIME_DURATION

  29. bonyolult két típus: definite és relative DATE_DURATION

  30. definite = true év, hónap = 0 <=> definite definite DATE_DURATION

  31. összehasonlítás: <,<=,>,>=,is_equal,=csak két definite hasonlítható össze, különben hamisat ad kanonikus definite definite DATE_DURATION műveletei

  32. definite = false év, hónap, nap > 0 relative DATE_DURATION

  33. nem összehasonlítható <, > mindig hamisat ad is_equal relative DATE_DURATION műveletei

  34. canonical(date: DATE) 1 <= hónap <= 12, 1 <= nap <= 30 (28) nem mindig tudunk 30 napot 1 hónappá konvertálni 01/15 – 02/14: kanonikus, nem tudunk 04/15 – 05/15: nem kanonikus => 1 hónap pozitív, negatív lehet kanonikus relative DATE_DURATION

  35. make(y,m,d: INTEGER)ha y=m=0, akkor definite make_by_days(n: INTEGER)definite DATE_DURATION létrehozása

  36. összehasonlítás beállítás: set_date(y,m,d: INTEGER)set_year(y: INTEGER)set_month(m: INTEGER)set_day(d: INTEGER) DATE_DURATION műveletei

  37. canonical(date: DATE) to_canonical kanonikus DATE_DURATION

  38. definite és relative kanonikus és nem kanonikus DATE_TIME_DURATION

  39. make(y,mo,d,h,mi,s: INTEGER) make_definite(d,h,m,s: INTEGER) make_by_date(d: DATE_DURATION)idő = 0.0.0 make_by_date_time (d: DATE_DURATION,t: TIME_DURATION) DATE_TIME_DURATIONlétrehozása

  40. összehasonlítás: <,<=,>,>=,is_equal,=ha mindkettő definite, akkor a napok összehasonlíthatóak, különben hamisat ad beállítás: set_date(d: DATE_DURATION)set_time(t: TIME_DURATION) DATE_TIME_DURATIONműveletei

  41. canonical to_canonical: csak ha mind a DATE, mind a TIME kanonikus time_to_canonical kanonikus DATE_TIME_DURATION

  42. DATE és TIMEstringgé konvertálása

  43. TIME_VALUE fine_second fractional_second Pontosság

  44. létrehozás: make_fine(h,m: INTEGER, s: DOUBLE) make_by_fine_seconds(sec: INTEGER) beállítás: set_fine_second(s: DOUBLE) set_fractionals(f: DOUBLE) TIME, TIME_DURATION

  45. fine műveletei fine_seconds_add(f: DOUBLE) canonical, to_canonical

  46. people.inf.elte.hu/fluke/eiffel

More Related