使用java导航到下一页或上一页

使用java导航到下一页或上一页,java,date,selenium,Java,Date,Selenium,我必须写一个通用代码,它应该给两个日期之间的月差 例如,我的输入数据将是 1. date1 = 22/01/2016 date2 = 30/03/2016 2. date1 = 22/01/2016 date2 = 20/12/2015 基于月差,我必须向前移动(如果date2是未来日期到日期1)或向后移动(如果date2是过去日期到日期1),这是很多次。您可以简单地按说明比较这两个日期 根据结果,您只需调用与您自己单击按钮相同的代码(只需调用相应的方法(如果您不使用该方法,我建议您这样做)

我必须写一个通用代码,它应该给两个日期之间的月差

例如,我的输入数据将是

1.  date1 = 22/01/2016
date2 = 30/03/2016
2. date1 = 22/01/2016
date2 = 20/12/2015

基于月差,我必须向前移动(如果date2是未来日期到日期1)或向后移动(如果date2是过去日期到日期1),这是很多次。

您可以简单地按说明比较这两个日期

根据结果,您只需调用与您自己单击按钮相同的代码(只需调用相应的方法(如果您不使用该方法,我建议您这样做))

乌鸦你好

编辑:
可以计算两个日期之间的差值

使用Math.round可以确保31天和28天的月份返回正确的值 将数据和数据2替换为您自己的值

tl;博士 细节 你的问题不清楚,但这可能会帮助你找到正确的方向

避免麻烦的旧日期时间类,例如
date
,它们现在是遗留的,被java.time类取代

LocalDate
该类表示一个仅限日期的值,不包含一天中的时间和时区

日期1=22/01/2016 日期2=30/03/2016

LocalDate start = LocalDate.of( 2016 , Month.JANUARY , 22 ) ;
LocalDate stop = LocalDate.of( 2016 , Month.MARCH , 30 ) ;
Period
计算作为
期间经过的天数、月数和年数

Period period = Period.between( start , stop ) ;
测试是否在开始之前停止,这意味着经过的时间是负的,沿时间线向后

Boolean isTimeGoingBackwards = period.isNegative() ;
月 你的评论提到了几个月。了解计算月份的多种方法:

  • 计算经过的天数,除以30作为一般月份的长度
  • 完全覆盖的日历月数
  • 时间跨度所涉及的日历月数
Java至少提供了其中的一些。阅读文档以确定哪些满足您的需要。如果时间倒流,结果是负数

ChronoUnit.MONTHS
Period.toTotalMonths

关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门为Android采用了ThreeTen Backport(如上所述)

该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如、、和。

您的问题不清楚。“date1”是字符串吗?不是字符串,它只是日期格式。比如,日期=新日期(22,012016);你说的前进和后退是什么意思?在wabpages?如果是,您是否使用Java servlets?在Java页面中,根据差异,我必须单击指向下一页或上一页的链接。(no:of clicks是日期和日期之间的月数差异2)实际上,我希望使用selenium clicks进行月数的点击,所以您需要两个日期之间的差异?只有月的差异。日期组合可以是:[date1(现在),date2(未来)]或[date1(现在),date2(过去)][date1(现在),date2(未来)]-有了这个区别,我必须点击下一步。还有,[date1(现在),date2(过去)]-有了这个区别,我必须点击previous。但糟糕的是,我无法预测日期2是“未来”还是“过去”。然后只需减去不同的月份值,必要时乘以-1。。。还是我遗漏了什么?谢谢你的帮助。但是,它给了天的不同,我需要几个月的不同,它给了个月的不同。检查一下,像、
java.text.simpleDataFormat
这样麻烦的旧日期时间类现在被内置在Java8和Java9中的类所取代。看见
Period period = Period.between( start , stop ) ;
Boolean isTimeGoingBackwards = period.isNegative() ;
long months = ChronoUnit.MONTHS.between( start , stop ) ;
int months = Period.between( start , stop ).toTotalMonths() ;