首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Google Scripts中返回一周的开始(开始日期=周日)?

如何在Google Scripts中返回一周的开始(开始日期=周日)?
EN

Stack Overflow用户
提问于 2021-11-01 23:49:45
回答 2查看 65关注 0票数 2

我有以下代码:

代码语言:javascript
复制
function myFunction() {
  var ss        = SpreadsheetApp.getActiveSpreadsheet(); // current spreadsheet
  var old_sheet = ss.getActiveSheet();                   // current (old) sheet
  var new_sheet = old_sheet.copyTo(ss);                  // make a copy
  SpreadsheetApp.flush()
  new_sheet.setName(Utilities.formatDate(new Date(), 'GMT-7:00', 'w')); // set the name
  new_sheet.getRange('A3').setValue(new Date(), 'GMT-7:00', 'w');         // set the cell A3
  new_sheet.getRange('B14:H18').clear({contentsOnly: true}); // clears content in B14:H18
  old_sheet.hideSheet();                                 // hide the old sheet
}

我遇到麻烦的部分如下:

代码语言:javascript
复制
new_sheet.getRange('A3').setValue(new Date(), 'GMT-7:00', 'w');         // set the cell A3

我的目标是将周日日期返回到单元格A2中,或者将当前周数字(从周日开始)返回到单元格A3中。

例如:10/31/2021年将被放入A2或45 (周数)将被放入A3,从那里我可以使用谷歌工作表中的常规公式在两个方向上工作。

我尝试使用'w‘设置error(new date() -->,但遇到错误:

“异常:参数((类)、字符串、字符串)与SpreadsheetApp.Range.setValue的方法签名不匹配。”

我在这里读到:How do you resolve a "The parameters (number[]) don't match the method signature for SpreadsheetApp.Range.setValues" error

这意味着范围是二维的,我试着使用.push(),但老实说,我不确定该怎么做。

我知道如果我设置starts (new date())会给出当前的日期,但是我不确定如何获得从一周的开始(星期日)开始的日期。

谢谢,如果我拼写错误或没有正确解释,请让我知道。我的母语不是英语。

EN

回答 2

Stack Overflow用户

发布于 2021-11-02 01:06:16

周日日期,以单元格A2表示

代码语言:javascript
复制
  var d = new Date()
  d.setDate (d.getDate() - d.getDay())
  new_sheet.getRange('A2').setValue(d);
票数 2
EN

Stack Overflow用户

发布于 2021-11-02 00:46:55

下面是获取上周日日期的方法:

代码语言:javascript
复制
function get_last_sunday() {
  var today = new Date();
  var day = today.getDay(); // 0 - Sunday, 1 - Monday, 2 - Tuesday, etc...
  var sunday = new Date(today.getTime() - 24*60*60*1000*day);
  return sunday;
}

console.log(get_last_sunday())

也许你可以这样使用这个公式:

代码语言:javascript
复制
new_sheet.getRange('A2').setValue(get_last_sunday());

要获取周数,可以使用以下函数:

代码语言:javascript
复制
function get_week() {
  return Utilities.formatDate(new Date(), 'GMT-7:00', 'w');
}

和分别为:

代码语言:javascript
复制
new_sheet.getRange('A3').setValue(get_week());

至于其他的,我不明白你的目标。尤其是“OR”条件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69803939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档