如何在给定的某个月份获取上个月的名称(用文字而不是数值)? [复制]

Posted

技术标签:

【中文标题】如何在给定的某个月份获取上个月的名称(用文字而不是数值)? [复制]【英文标题】: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');

【讨论】:

以上是关于如何在给定的某个月份获取上个月的名称(用文字而不是数值)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

用SQL获取某个某年某个月份的最后一天的日期

使用Scala从给定月份获取前12个月的月底日期

如何从python中的日期获取月份名称

Django/Python - 用文字而不是数字显示月份

MYSQL 怎样获取指定月份的每一天,求助

js获取给定月份的N个月后的日期