亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Google 腳本中的增量日期

Google 腳本中的增量日期

HUX布斯 2023-05-25 16:10:53
我只想將單元格 A1 中的給定日期增加 1 天。我需要兩個單獨的變量,一個用于給定日期,一個用于新的遞增日期。問題是,我的代碼總是更改兩個變量,我不知道為什么。function testDate() {var sht_test = SpreadsheetApp.getActive().getSheetByName('Test');var date_given = sht_test.getRange(1,1).getValue(); // type a Date in cell A1var date_new;date_new = date_given;date_new = new Date(date_new.setDate(date_new.getDate() +1 ));  sht_test.getRange(2,1).setValue(date_new);sht_test.getRange(2,2).setValue(date_given);}
查看完整描述

1 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

問題/解釋:

在這部分代碼中:

date_new = date_given;

您傳遞了對的引用。date_givendate_new

即,您所做的任何更改date_new 都會自動應用,date_given因為它們引用相同的日期對象。

當您將日期遞增 1 時:

date_new = new Date(date_new.setDate(date_new.getDate() +1 ));

那個部分:date_new.setDate(date_new.getDate() +1 )

增量(更改)date_new,因此date_given也被修改,因為它們都引用同一個對象。

這就是為什么date_newdate_given返回相同的值。

為了將它們分開,您需要創建一個副本,其中date_given將是一個新的日期對象:

date_new = new Date(date_given);

因此,如果您以后修改date_new,date_given將不會被修改。


解決方案:

function testDate() {


var sht_test = SpreadsheetApp.getActive().getSheetByName('Test');

var date_given = sht_test.getRange(1,1).getValue(); // type a Date in cell A1

var date_new;


date_new = new Date(date_given);

date_new = new Date(date_new.setDate(date_new.getDate() +1 ));  


sht_test.getRange(2,1).setValue(date_new);

sht_test.getRange(2,2).setValue(date_given);


}


查看完整回答
反對 回復 2023-05-25
  • 1 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號