当前位置: 首页 > 知识库问答 >
问题:

在迭代器中查找内容之间的持续时间(以月为单位)

凌通
2023-03-14

代码:

    Iterator<String> termIncomeKeys = termIncome.keySet().iterator();
    while(termIncomeKeys.hasNext()){
        String month = termIncomeKeys.next();
        System.out.println(month);
    }

月份打印为

一月(2012)-一月(2012)

2012年2月-2012年3月

四月(2012)-五月(2012)

六月(2012)-六月(2012)

2012年7月-2012年10月

我想实现的是,我想打印每个条目之间的持续时间,以月为单位。也就是说,第一次输入之间的持续时间为1个月,第二次输入之间的持续时间为2个月,依此类推。

共有2个答案

姬念
2023-03-14

假设同一年:

enum Month{
JAN(0),
FEB(1),
MAR(2),
APR(3),
....
DEC(11);

Month(int index){this.index = index;}
int index;

int getIndex() {return index;}
}

Iterator<String> termIncomeKeys = termIncome.keySet().iterator();
    while(termIncomeKeys.hasNext()){
        String month = termIncomeKeys.next();
        String str[] = month.split("-");
        String m0 = str[0], m1 = str[1];
        String y0 = mo.substr(m0.indexOf('(')+1, mo.lastIndexOf(')'));
        String y1 = m1.substr(m1.indexOf('(')+1, m1.lastIndexOf(')'));
        int yr0 = Integer.parseInt(yo), yr1 = Integer.parseInt(y1);
        m0 = m0.substr(0, mo.indexOf('(')).trim().toUpperCase();
        m1 = m1.substr(0, m1.indexOf('(')).trim(),toUpperCase();
        int duration =  yr1 *Month.valueOf(m1).getIndex() - yr0 *Month.valueOf(m0).getIndex();
    }
段干庆
2023-03-14

我不知道是否有一个现成的类可以为你解析这些字符串,但是逻辑很简单:

将三个字母的月份转换为数字(例如0-11),也将年份转换为数字。区别是

 类似资料:
  • 我有一个数据集myTable,它具有ISO 8601时间/日期值。它看起来像这样: 我想找到持续时间(每个用户名的maxTime和minTime之间的差异)。我查看了这篇文章,但它仅适用于C,并且需要使用正则表达式。我想知道是否有更简单的方法或库函数可以找到ISO 8601格式的持续时间?

  • 在ISO 8601中,持续时间的格式为PT5M(5分钟)或PT2H5M(2小时5分钟)。我有一个JSON文件,其中包含这种格式的值。我想知道spark是否可以提取分钟的持续时间。我尝试将其读取为“DateType”,并使用“minutes”函数获取分钟数,结果返回空值。 示例json 目前,我正在将其作为字符串读取并使用“regex_extract”函数。我想知道一种更有效的方法。 https:/

  • 我想计算Java中两小时(HH:mm:ss)之间的时间差(持续时间)。在这里,我读了几个关于这个主题的主题,但我的问题有点不同。 我也不能使用。 示例: ode: 结果:

  • 我的主类包含这些代码行。(还有一个JButton可将文件添加到播放列表中) 这是另一个类,playlymanager,它管理我的播放列表,比如从播放列表中添加、删除文件。 问题是,每次我在播放列表中添加歌曲时,持续时间总是读取为0。控制台打印: 添加歌曲:name_of_the_song.mp3,持续时间为0 为什么会这样?它不能正确读取持续时间(javafx.util.duration)的原因是

  • 问题内容: 我有一个价值,我想得到另一个正好是1个月前的时间。 我知道可以用(想要另一个)进行减法,但这会导致a,而我反过来需要它。 问题答案: 尝试AddDate: 产生: 游乐场:http://play.golang.org/p/QChq02kisT

  • 我有两个DateTime对象,它们需要找出它们之间差异的持续时间, 我有以下代码,但不确定如何继续以达到以下预期结果: 示例: 代码: