如何在SHELL获取当天时间的月份和上个月的月份还有下个月的月份
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在SHELL获取当天时间的月份和上个月的月份还有下个月的月份相关的知识,希望对你有一定的参考价值。
上个月比较好写,减去当前日期,再减1天# date -d "-1 days" -d "-`date +%d` days" +%m
09
------------------------------------------------------------
下个月就不好写咯
date里的1 month有问题
比如今天是10月31日
# date -d "1 month" +%m
12
变成12月了
# date +%m
10
获取当前月份
那么下个月只好写代码了:
now_month=`date +%m`
if [ $now_month -ne 12 ];then
echo nextmonth is `expr $now_month + 1`
else
echo nextmonth is 01
fi 参考技术A linux中:
当月
date +%Y%m
上个月
date -d "(date +%Y%m)01 last month" +%Y%m
下个月
date -d "(date +%Y%m)01 next month" +%Y%m
如何在给定的某个月份获取上个月的名称(用文字而不是数值)? [复制]
【中文标题】如何在给定的某个月份获取上个月的名称(用文字而不是数值)? [复制]【英文标题】:How to get previous month name on given some month (in words not numerical value)? [duplicate] 【发布时间】:2021-11-10 10:06:41 【问题描述】:我想要一个函数,可以给出任何给定月份的上一个月的全名[不仅仅是当前月份]
例如:prevMonth(August) = July; prevMonth(January)= December
。
我是 js 新手,不知道如何使用这个数组来获取结果:
monthsarray: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
【问题讨论】:
您好,请查看developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 我可以通过在使用 Copilot 时简单地输入函数名称并点击选项卡来创建解决方案。 travis.media/how-to-use-github-copilot-vscode - 我认为 Copilot 非常适合想要学习解决问题的好方法的新开发人员。只要你花时间理解代码。const getPrev = month => const m = monthsarray.indexOf(month); return monthsarray[(m+monthsarray.length-1)%monthsarray.length];
标记的副本没有回答这个问题。
@mplungjan——不知道你为什么要打扰const m
,它只用了一次并且需要大量额外的输入:const getPrev = month => monthsarray[(monthsarray.indexOf(month) + monthsarray.length - 1) % monthsarray.length];
:-)
【参考方案1】:
期待这样一个简单的解决方案吗?
var monthsarray = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
function prevMonth(curMonth)
var curMonthIndex = monthsarray.indexOf(curMonth);
var prevMonthIndex;
if (curMonthIndex == 0) prevMonthIndex = monthsarray.length - 1;
else if (curMonthIndex == monthsarray.length - 1) prevMonthIndex = 0;
else prevMonthIndex = curMonthIndex - 1;
return monthsarray[prevMonthIndex];
console.log(prevMonth("August"));
console.log(prevMonth("December"));
【讨论】:
【参考方案2】:let monthsarray1= ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] ;
let m="May";
console.log(pvsMonth(m))
function pvsMonth(m)
let ln=monthsarray1.length
let idx=monthsarray1.indexOf(m)
if(idx==0)
return monthsarray1[ln-1]
else
return monthsarray1[idx-1]
【讨论】:
【参考方案3】:function prevMonth(month)
const index = monthsarray.indexOf(month);
if (index > 0)
return monthsarray[index - 1];
if (index === 0)
return monthsarray[monthsarray.length - 1];
throw new Error('Invalid Month given');
【讨论】:
以上是关于如何在SHELL获取当天时间的月份和上个月的月份还有下个月的月份的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Hive 表中获取月份 = 当前月份 else 月份 = 上个月(当前月份 - 1)的记录?
如何在给定的某个月份获取上个月的名称(用文字而不是数值)? [复制]