private int GetIntentId() {
   int val = dataStore.getInt("intentId", 0);
   dataEditor.putInt("intentId", val + 1);
   dataEditor.commit();
   LogUtil.LogString("send id");
   return val;
 }
 private boolean GetTodayOrTommorowByTime(int hour, int minutes) {
   Calendar calendar = Calendar.getInstance();
   boolean isTommorow = false;
   if (calendar.get(Calendar.HOUR_OF_DAY) > hour) {
     isTommorow = true;
   } else if (calendar.get(Calendar.HOUR_OF_DAY) == hour) {
     if (calendar.get(Calendar.MINUTE) > minutes) {
       isTommorow = true;
     }
   }
   LogUtil.LogString("istommorow" + isTommorow);
   return isTommorow;
 }
  private void SetAlarm(int hour, int minute, boolean ytommorrow, String type) {
    LogUtil.LogString("d_hour" + hour + "d_minutes" + minute);
    // 設定時間と今の時間を比較してアラームが鳴るのが今日か明日かを決定
    boolean isTommorow = GetTodayOrTommorowByTime(hour, minute);
    // 設定時間の曜日を取得
    String dayOfWeek = GetDayOfWeekByTime(isTommorow);
    // 調べた曜日にアラームが設定されているか確認
    if (DOWMap.get(dayOfWeek)) {
      Calendar cal = Calendar.getInstance();
      if (isTommorow) {
        cal.add(Calendar.DATE, 1);
      }
      if (ytommorrow) {
        cal.add(Calendar.DATE, 1);
      }

      cal.set(Calendar.HOUR_OF_DAY, hour);
      cal.set(Calendar.MINUTE, minute);
      SetAlarmByDate(cal, type);
    } else {
      LogUtil.LogString(dayOfWeek + "day is not setting");
    }
  }
 public void SetAlarms() {
   LogUtil.LogString("set alrams");
   // 設定値を読み込み
   ReadDataStore();
   // dalarmは普通に設定
   SetAlarm(d_dekiAlarmHour, d_dekiAlarmMinutes, false, "DEKI");
   // dekiとyabaを比較してyabaの方が時間が前なら1日ずらす
   boolean ytommorow = false;
   if ((d_yabaAlarmHour < d_dekiAlarmHour)
       || (d_yabaAlarmHour == d_dekiAlarmHour && d_yabaAlarmMinutes < d_dekiAlarmMinutes)) {
     ytommorow = true;
   }
   SetAlarm(d_yabaAlarmHour, d_yabaAlarmMinutes, ytommorow, "YABA");
 }
  private void ReadDataStore() {
    appContext = MyApplication.getAppContext();

    dataStore = appContext.getSharedPreferences("DataStore", appContext.MODE_PRIVATE);
    dataEditor = dataStore.edit();
    d_isAlarmSetting = dataStore.getBoolean("isAlarmSet", false);
    d_dekiAlarmHour = dataStore.getInt("dekiAlarmTimeHour", -1);
    d_dekiAlarmMinutes = dataStore.getInt("dekiAlarmTimeMinutes", -1);
    d_yabaAlarmHour = dataStore.getInt("yabaAlarmTimeHour", -1);
    d_yabaAlarmMinutes = dataStore.getInt("yabaAlarmTimeMinutes", -1);

    // map情報を読み込み
    try {
      File file = new File(appContext.getDir("data", appContext.MODE_PRIVATE), "map");
      ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
      DOWMap = (HashMap) ois.readObject();
      LogUtil.LogString(DOWMap.toString());
    } catch (Exception e) {

    }
  }
  private void SetAlarmByDate(Calendar settingCal, String type) {
    // 時間をセット
    Calendar calendar = settingCal;
    // 秒は0にしとく
    calendar.set(Calendar.SECOND, 0);
    // context
    appContext = MyApplication.getAppContext();

    Intent intent = new Intent(appContext, AlarmBroadcastReceiver.class);
    // intentにidを渡す
    intent.putExtra("intentId", GetIntentId());
    intent.putExtra("alarmType", type);
    PendingIntent pending = PendingIntent.getBroadcast(appContext, GetIntentId(), intent, 0);

    // アラームをセットする
    AlarmManager am = (AlarmManager) appContext.getSystemService(appContext.ALARM_SERVICE);
    am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pending);
    LogUtil.LogString("set alarm" + CalendarUtil.GetCalendarInfo(calendar));
    Toast.makeText(MyApplication.getAppContext(), "SetAlarm", Toast.LENGTH_LONG).show();
    if (type == "YABA") {
      yabaCalendarDate = settingCal;
    }
  }