daily-share
daily-share copied to clipboard
获取一年的自然周数组 (2020-7-16)
获取一年的自然周数组
export function getWeeksList(years: number) {
function formatDig(num: number){
return num > 9 ? '' + num : '0' + num
}
function formatDate(mill: number){
var y=new Date(mill);
return formatDig(y.getMonth()+1) + '月' + formatDig(y.getDate()) + '日'
}
function* createWeeks(year: number): any{
const ONE_DAY= 24 * 3600 * 1000
let start=new Date(year,0,1)
let end = new Date(year,11,31)
let firstDay=start.getDay() || 7
let lastDay=end.getDay() || 7
let startTime = +start
let endTime = startTime + (7-firstDay) * ONE_DAY
let _endTime = +end - (7-lastDay) * ONE_DAY
yield [startTime,endTime];
startTime = endTime + ONE_DAY
endTime = endTime + 7 * ONE_DAY;
while (endTime < _endTime) {
yield [startTime, endTime]
startTime = endTime + ONE_DAY
endTime = endTime + 7 * ONE_DAY
}
yield [startTime,+end];
}
let index=1
let arr = []
for(let i of createWeeks(years)){
let start=i[0],
end=i[1];
// console.log(`第${formatDig(index++)}周 (${formatDate(start)}-${formatDate(end)})`) ;
arr.push({
label: `第${formatDig(index++)}周 (${formatDate(start)}-${formatDate(end)})`,
value: index - 1
})
}
return arr
}
[
{
"label": "第01周 (01月01日-01月05日)",
"value": 1
},
{
"label": "第02周 (01月06日-01月12日)",
"value": 2
},
{
"label": "第03周 (01月13日-01月19日)",
"value": 3
},
{
"label": "第04周 (01月20日-01月26日)",
"value": 4
},
{
"label": "第05周 (01月27日-02月02日)",
"value": 5
},
{
"label": "第06周 (02月03日-02月09日)",
"value": 6
},
{
"label": "第07周 (02月10日-02月16日)",
"value": 7
},
{
"label": "第08周 (02月17日-02月23日)",
"value": 8
},
{
"label": "第09周 (02月24日-03月01日)",
"value": 9
},
{
"label": "第10周 (03月02日-03月08日)",
"value": 10
},
{
"label": "第11周 (03月09日-03月15日)",
"value": 11
},
{
"label": "第12周 (03月16日-03月22日)",
"value": 12
},
{
"label": "第13周 (03月23日-03月29日)",
"value": 13
},
{
"label": "第14周 (03月30日-04月05日)",
"value": 14
},
{
"label": "第15周 (04月06日-04月12日)",
"value": 15
},
{
"label": "第16周 (04月13日-04月19日)",
"value": 16
},
{
"label": "第17周 (04月20日-04月26日)",
"value": 17
},
{
"label": "第18周 (04月27日-05月03日)",
"value": 18
},
{
"label": "第19周 (05月04日-05月10日)",
"value": 19
},
{
"label": "第20周 (05月11日-05月17日)",
"value": 20
},
{
"label": "第21周 (05月18日-05月24日)",
"value": 21
},
{
"label": "第22周 (05月25日-05月31日)",
"value": 22
},
{
"label": "第23周 (06月01日-06月07日)",
"value": 23
},
{
"label": "第24周 (06月08日-06月14日)",
"value": 24
},
{
"label": "第25周 (06月15日-06月21日)",
"value": 25
},
{
"label": "第26周 (06月22日-06月28日)",
"value": 26
},
{
"label": "第27周 (06月29日-07月05日)",
"value": 27
},
{
"label": "第28周 (07月06日-07月12日)",
"value": 28
},
{
"label": "第29周 (07月13日-07月19日)",
"value": 29
},
{
"label": "第30周 (07月20日-07月26日)",
"value": 30
},
{
"label": "第31周 (07月27日-08月02日)",
"value": 31
},
{
"label": "第32周 (08月03日-08月09日)",
"value": 32
},
{
"label": "第33周 (08月10日-08月16日)",
"value": 33
},
{
"label": "第34周 (08月17日-08月23日)",
"value": 34
},
{
"label": "第35周 (08月24日-08月30日)",
"value": 35
},
{
"label": "第36周 (08月31日-09月06日)",
"value": 36
},
{
"label": "第37周 (09月07日-09月13日)",
"value": 37
},
{
"label": "第38周 (09月14日-09月20日)",
"value": 38
},
{
"label": "第39周 (09月21日-09月27日)",
"value": 39
},
{
"label": "第40周 (09月28日-10月04日)",
"value": 40
},
{
"label": "第41周 (10月05日-10月11日)",
"value": 41
},
{
"label": "第42周 (10月12日-10月18日)",
"value": 42
},
{
"label": "第43周 (10月19日-10月25日)",
"value": 43
},
{
"label": "第44周 (10月26日-11月01日)",
"value": 44
},
{
"label": "第45周 (11月02日-11月08日)",
"value": 45
},
{
"label": "第46周 (11月09日-11月15日)",
"value": 46
},
{
"label": "第47周 (11月16日-11月22日)",
"value": 47
},
{
"label": "第48周 (11月23日-11月29日)",
"value": 48
},
{
"label": "第49周 (11月30日-12月06日)",
"value": 49
},
{
"label": "第50周 (12月07日-12月13日)",
"value": 50
},
{
"label": "第51周 (12月14日-12月20日)",
"value": 51
},
{
"label": "第52周 (12月21日-12月27日)",
"value": 52
},
{
"label": "第53周 (12月28日-12月31日)",
"value": 53
}
]
获取最近一段时间
function getRecentlyDay(num = 1) {
let data1 = [];
function getDay(day) {
var today = new Date();
var targetday_milliseconds = today.getTime() + 1000 * 60 * 60 * 24 * day;
today.setTime(targetday_milliseconds);
var tYear = today.getFullYear();
var tMonth = today.getMonth();
var tDate = today.getDate();
tMonth = doHandleMonth(tMonth + 1);
tDate = doHandleMonth(tDate);
// return tYear+"-"+tMonth+"-"+tDate; //年月日
return tMonth + "-" + tDate; //月日
}
function doHandleMonth(month) {
var m = month;
if (month.toString().length == 1) {
m = "0" + month;
}
return m;
}
function dsdd(e) {
//拼接
data1.splice(0); //请控之前的数据
for (let i = 0; i < e; i++) {
data1.push(getDay(-i)); //-i 代表之前 i代表将来
}
}
dsdd(num)
return data1
}
console.log(getRecentlyDay(5));