我每周都会有一张Google表格。我现在有一个A栏自动填写我在B栏中输入任何内容的日期。因为我通常把下次会议的日期,而不是我添加注释的日期,我想知道是否有我可以添加的脚本这将使日期X和'向上'到下一个会议日期。会议总是在周三举行。
我正在四处寻找可以做到这一点的事情,但只是找到了如何四舍五入到最近的一分钟,这并不像我需要的那样具体。
例如,我上次会议是9月27日。我希望在9/27之后我在B列中输入的任何内容都显示10/4的时间戳,即使我在10/2或10/3中将其输入到工作表中。
目前正在运行此服务(来自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);
}
}
答案 0 :(得分:0)
只要您想要的每个日期都在星期三,按日期的工作日格式化今天的日期,请找出today()
和3 - wednesday
之间的差异下一个function onEdit(event)
{
...
var today = new Date();
// Today as day of week by number - 1 Monday...0 Sunday
var day_of_week = today.getDay();
// Find the diff in days until next Wednesday
var diff = day_of_week > 3 ? 10 - day_of_week : 3 - day_of_week;
// Add `diff` amount of days to today
today.setDate(today.getDate() + diff);
...
cell.setValue(today);
}
today.setDate(today.getDate() + diff);
修改:更新日期添加天数 - 来自Add days to JavaScript Date。闰年和夏令时日期/时间都经过测试db.getCollection('USER_COLLEC') .
aggregate([
{ "$unwind": "$movies" } ,
{ $lookup:
{from: "MOVIE_COLLEC",
localField: "movies",
foreignField: "_id",
as: "movieContent"},
} ,
{ $unwind: "$movieContent" },
{$sort: {"movieContent.duration":-1}},
{ $project: { "user":"$name","duration" : "$movieContent.duration"} } ,
{ $limit : 1 }
。似乎是这种特殊用途的最优雅的工作解决方案。