我正在嘗試在 Apps Script 中撰寫一個函式,我可以在其中輸入一個日期,輸出將是該月每一天的日期陣列。
前任。
function("random date in april 2022"){}
輸出:{2022-04-01, 2022-04-02, etc.}
uj5u.com熱心網友回復:
您可以使用普通的電子表格公式來做到這一點,而無需借助腳本,如下所示:
=arrayformula( eomonth(A2, -1) sequence(day(eomonth(A2, 0))) )
由于您指定了 Apps 腳本,因此這里有一個自定義函式可以執行相同操作:
/**
* Returns a list of all dates in the month of the parameter date.
*
* @param {Date} date The date that determines which month's dates to list.
* @return {Date[][]} The list of dates in the month.
* @customfunction
*/
function ListMonthDays(date = new Date()) {
const month = date.getMonth();
const result = [];
for (let i = 1; i <= 31; i ) {
date.setDate(i);
if (date.getMonth() === month) {
result.push([new Date(date)]);
}
}
return result;
}
uj5u.com熱心網友回復:
一年的月歷
function calendarMonthlyForYear() {
var dA = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
var oA = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];//you can change the first day of the week by shifting the array
//var oA=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];
var dObj = {};
oA.forEach(function (e, i) { dObj[e] = i });
var mA = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var cA = [];
var bA = [];
var wA = [null, null, null, null, null, null, null];
var ss = SpreadsheetApp.getActive();
var sh = ss.getSheetByName("Cal");
if (!sh) { var sh = ss.insertSheet('Cal'); }
sh.clear();
var year = new Date().getFullYear();
for (var i = 0; i < 12; i ) {
var month = new Date(year, i, 1).getMonth();
var dates = new Date(year, i 1, 0).getDate();
cA.push([mA[month], dates, '', '', '', '', '']);
bA.push(['#ffffff', '#ffffff', '#ffffff', '#ffffff', '#ffffff', '#ffffff', '#ffffff']);
cA.push(oA)
bA.push(['#ffff00', '#ffff00', '#ffff00', '#ffff00', '#ffff00', '#ffff00', '#ffff00']);
var d = [];
var ddd = [];
for (var j = 0; j < dates; j ) {
var day = new Date(year, i, j 1).getDay();
var date = new Date(year, i, j 1).getDate();
if (day < wA.length) {
wA[dObj[dA[day]]] = date;
}
//if(day==wA.length-1 || date==dates) {
if (dA[day] == oA[wA.length - 1] || date == dates) {
cA.push(wA);
bA.push(['#ffffff', '#ffffff', '#ffffff', '#ffffff', '#ffffff', '#ffffff', '#ffffff']);
wA = ['', '', '', '', '', '', ''];
}
}
}
sh.getRange(1, 1, cA.length, cA[0].length).setValues(cA);
//sh.getRange(1,1,cA.length,cA[0].length).setBackgrounds(bA);
sh.getRange(1, 1, cA.length, cA[0].length).setBackground('#ffffff');
}
| 簡 | 31 | |||||
|---|---|---|---|---|---|---|
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 | ||||||
| 二月 | 28 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | ||||||
| 三月 | 31 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||
| 四月 | 30 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | |
| 可能 | 31 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 | |||||
| 君 | 30 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||
| 七月 | 31 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 八月 | 31 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 | ||||
| 九月 | 30 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | ||
| 十月 | 31 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 | ||||||
| 十一月 | 30 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | ||||
| 十二月 | 31 | |||||
| 星期一 | 周二 | 星期三 | 周四 | 周五 | 星期六 | 太陽 |
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/490696.html
上一篇:如何在函式中操作布林值?
