let VARIETY = ''; //品種名
let TAUE_DATE = 0; //田植え日
let TARGET_EAR_TEMP_SUM = 0; //出穂必要積算気温
let TARGET_TOUJUKU_TEMP_SUM = 0; //登熟必要積算気温
let METEO=[]; // 気温データ(366日データとして提供) 
let TEMP_FILE = '';  //気温データシート名
let debug = 0;  //デバックのフラグ(デバック時は1、完成時は0)
//情報表示関数(デバック時はLogger,完成時はBrowserに出力)
function showMsg(msg) {
  if (debug==1) {
    Logger.log(msg); }
  else{
    Browser.msgBox(msg);
  }
}
//共通情報の表示
function showSimulationBaseInfo() {
  let msg = ''
  msg += '基本情報\\n';
  msg += '品種=' + VARIETY + '\\n';
  msg += '田植え日=' + TAUE_DATE + '\\n';
  msg += '出穂積算温度=' + TARGET_EAR_TEMP_SUM + '\\n';
  msg += '登熟積算温度=' + TARGET_TOUJUKU_TEMP_SUM + '\\n';
  msg += '気温データシート名=' + TEMP_FILE + '\\n';
  showMsg(msg);
}
// 計算結果の表示
function showCalcResultMsg(shussuiDate, toujukuDate) {
  let msg ='';
  msg += '出穂予想日=' + shussuiDate + '\\n';
  msg += '登熟予想日=' + toujukuDate + '\\n';
  showMsg(msg);
}
//基礎データの読み込み
function getBaseInfo() {
  let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  let sheet = spreadsheet.getActiveSheet();
  let range = sheet.getRange(1, 2, 5);  //セルB1:B4を取得
  VARIETY = range.getValues()[0];
  TAUE_DATE = range.getValues()[1];
  TARGET_EAR_TEMP_SUM = range.getValues()[2];
  TARGET_TOUJUKU_TEMP_SUM = range.getValues()[3];
  TEMP_FILE = range.getValues()[4];
  //Logger.log(VARIETY+','+TAUE_DATE+','+TARGET_EAR_TEMP_SUM+','+TARGET_TOUJUKU_TEMP_SUM+','+tempFile);
}
//気象データの読込
function getMeteo() {
  let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  let sheet = spreadsheet.getSheetByName(TEMP_FILE);
  let range = sheet.getRange(1, 2, 366);  //セルB1:B366を取得
  METEO = range.getValues();
  //Logger.log(METEO[0]+', '+METEO[1]);
}
// 実行ボタンクリック時に動作する関数
function onSimulationButtonClick() {	// 気温データシートの指定後に実行
  //
  getBaseInfo();  //共通情報の読込
  getMeteo();     //気象データの読込
  //
  let shussuiDate = null; //出穂予想日(計算で算出)
  let toujukuDate = null; //登熟予想日(計算で算出)
  let shukakuDate = null; //収穫予想日(計算で算出:本日の課題では計算しない。)
  let currentEarTempSum = 0; //出穂予想のための積算気温変数
  let currentToujukuTempSum = 0; //登熟予想のための積算気温変数
  let tempToday = 0; //その日の気温
  //
  for (let today=0; today<366; today++){  // 生育シミュレーション(1月1日-12月31日気温データを利用)
    tempToday = parseFloat(METEO[today]); // その日の気温データを読み込み
    /* 以下は、(出穂予定日:shussuiDateの計算部分) */
    if( today > TAUE_DATE ){
      currentEarTempSum += tempToday;
      if( (currentEarTempSum >= TARGET_EAR_TEMP_SUM) && (shussuiDate == null) ){
        shussuiDate = today;
      }
    }
    //
    /* 本日の課題作成部分(登熟日:toujukuDateの計算)*/
    //
  }
  showSimulationBaseInfo();   //共通情報の表示
  showCalcResultMsg(shussuiDate, toujukuDate);  //シミュレーション結果の表示
}