2013年11月21日木曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の12章(高度な型)、12.1(構造体)、12.2(共用体)、12.3(typedef)、12.4(enum型)、12.5(キャスト)、12.6(ビットフィールドまたは構造体の圧縮)、12.7(構造体配列)、12.9(プログラミング実習)、実習12-2をDartで解いてみる。

その他参考書籍

実習12-2.

コード

sample.dart

import 'dart:html';

void main(){
  InputElement run = querySelector('#run_dart');
  InputElement clear = querySelector('#clear');
  Element pre = querySelector('#pre0');
  run.onClick.listen((MouseEvent event){
    String result = window.navigator.userAgent + '\n';
    TimeAndDate t1 = new TimeAndDate(1, 2, 3, 4, 5);
    TimeAndDate t2 = new TimeAndDate(6, 7, 8, 9, 10);
    result += '$t1\n$t2\n${t1.difference(t2)}分\n';
    result += '$t2\n$t1\n${t2.difference(t1)}分';
    pre.text = result;
  });
  clear.onClick.listen((MouseEvent event) => pre.text = '');;
}

class TimeAndDate{
  int hour,
      minute,
      second,
      month,
      day;
  TimeAndDate(this.hour,dynamic this.minute, this.second,
      this.month, this.day);
  double difference (TimeAndDate other){
    double n = 60 * (this.hour - other.hour) + (this.minute - other.minute) +
        (this.second - other.second) / 60;
    return n.isNegative ? -n : n;
  }
  String toString(){
    return '$month月$day日$hour時$minute分$second秒';
  }
}













						

0 コメント:

コメントを投稿