Skip to content

Instantly share code, notes, and snippets.

@lindhe
Last active January 5, 2019 21:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lindhe/1fe072a620a81894f9e1a18e82ecf18e to your computer and use it in GitHub Desktop.
Save lindhe/1fe072a620a81894f9e1a18e82ecf18e to your computer and use it in GitHub Desktop.
Prints Week number from date in Google Sheets
function printWeek() {
var settings = SpreadsheetApp.getActive().getSheetByName('settings');
var sheet = SpreadsheetApp.getActive().getSheetByName('test');
const DATE = 0;
const WEEK = 1;
const START_ROW = 2; // First row of data to process
// Fetch settings:
var config = settings.getRange(2,1,10,2).getValues(); // change range dependign on need
var numRows = config[0][1]; // Number of rows to process
if (typeof(numRows) !== 'number') {
Logger.log("Problem getting settings!");
return false;
}
// Fetch data:
var dataRange = sheet.getRange(START_ROW, 1, numRows, 2);
var data = dataRange.getValues();
for (row = 0; row < numRows; row++) {
if (typeof(data[row][WEEK]) === 'number') { // While week number is defined
var wk = data[row][WEEK];
var dt = data[row][DATE];
if (dt instanceof Date) {
dt = dt.yyyymmdd()
}
var sundayThatWeek = getDateOfNextWN(wk, 6).yyyymmdd();
if (dt !== sundayThatWeek) {
Logger.log("The date of week " + wk + " was changed from " + dt + " to " + sundayThatWeek);
sheet.getRange(START_ROW + row, WEEK).setValue(sundayThatWeek);
SpreadsheetApp.flush();
}
} else {
Logger.log("The type of the week field was " + typeof(data[row][WEEK]));
break;
}
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment