주간 회의의 Google 시트가 있습니다. 나는 현재 열 A를 자동으로 열 B의 상자에 입력 할 때의 날짜로 채 웁니다. 일반적으로 메모를 추가하는 날짜가 아니라 다음 모임의 날짜를 넣기 때문에 내가 추가 할 수있는 스크립트가 있는지 궁금해졌습니다. 그것은 날짜 X를 취하고 다음 회의 날짜로 '반올림'합니다. 회의는 항상 수요일에 있습니다.자바 스크립트 : 다음 주간 회의의 날짜에 자동 시간 기록을 자동으로 변경하려고합니다.
나는이 일을 둘러 보았으나 가장 가까운 분으로 모으는 방법을 찾고 있었지만, 필요한만큼 구체적인 것은 아닙니다.
예를 들어 나의 마지막 회의는 9/27이었습니다. 10/2 또는 10/3에 시트에 입력하더라도 10/4의 타임 스탬프를 표시하기 위해 9/27 이후에 B 열에 입력 할 내용이 필요합니다.
현재 internetgeek.org에서 이것을 실행 :
function onEdit(event)
{
var timezone = "GMT-5";
var timestamp_format = "MM/dd/yyyy";
var updateColName = "Item";
var timeStampColName = "Date";
var sheet = event.source.getSheetByName('Agenda');
var actRng = event.source.getActiveRange();
var editColumn = actRng.getColumn();
var index = actRng.getRowIndex();
var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
var dateCol = headers[0].indexOf(timeStampColName);
var updateCol = headers[0].indexOf(updateColName); updateCol = updateCol+1;
if (dateCol > -1 && index > 1 && editColumn == updateCol) {
var cell = sheet.getRange(index, dateCol + 1);
var date = Utilities.formatDate(new Date(), timezone, timestamp_format);
cell.setValue(date);
}
}
'새로운 날짜 (today.getTime() + diff * 3600000 * 24)'는 일광 절약 시간이있는 모든 날이 24 시간이 아니기 때문에 날짜를 추가하는 좋은 방법이 아닙니다. [* JavaScript 날짜에 일 추가 *] (https://stackoverflow.com/questions/563406/add-days-to-javascript-date)를 참조하십시오. – RobG
@RobG 좋은 지적; 나는 DST를 완전히 간과했다. 해당 링크의 솔루션을 기반으로 업데이트되었습니다. 감사! –