Groovy,Grails;每周为变量添加+1

时间:2014-04-02 12:59:12

标签: grails groovy

想象一下,你需要为一个整数添加+1" meetingWeek"每周,每周都有一次会议。 你是怎么做到的?

我在考虑约会" startDate"和整数" meetingWeek", 例如。

startDate= 2014/04/07
meetingWeek = 3 (We already had 3 meetings for example)

然后:

weekDif = todayDate-startDate
totalWeeks = weekDif + meetingWeek

如果我们在2014/04/14(" todayDate"),结果必须是meetingWeek = 4;一周剩下的时间也必须是4。 如果我们在2014/04 / 21-25,结果必须是meetingWeek = 5

所以在groovy中我可以做这样的事情:

use(groovy.time.TimeCategory) {
   def weekDif = todayDate-startDate
   println "days: ${weekDif.days}, Hours: ${weekDif.hours}"
}

我怎样才能获得这周?

3 个答案:

答案 0 :(得分:1)

这样的事情:

def today = new Date()
def start = today + 45
def meetingWeek = 1

( today..start ).step( 7 ) { meetingWeek++ }

println meetingWeek

答案 1 :(得分:1)

忽略我之前的回答。这个应该可以正常工作 -

import groovy.time.TimeCategory
import java.lang.Math
def dateParser = new java.text.SimpleDateFormat("yyyy/MM/dd")
def startDate = dateParser.parse("2014/04/04").getTime()
def futureDate1 = dateParser.parse("2014/07/04").getTime()
def futureDate2 = dateParser.parse("2015/07/04").getTime()
def meetingSeed = 3
def millisInWeek = 604800000
def futureDate1Weeks = Math.floor((futureDate1 - startDate)/millisInWeek)
def futureDate2Weeks = Math.floor((futureDate2 - startDate)/millisInWeek)

println("Future Date 1 weeks - " + (futureDate1Weeks + meetingSeed))
println("Future Date 2 weeks - " + (futureDate2Weeks + meetingSeed))

答案 2 :(得分:0)

我的解决方案是:

    Calendar cal = Calendar.getInstance();
    cal.setTime(todayDate);
    int week = cal.get(Calendar.WEEK_OF_YEAR);

    cal = Calendar.getInstance();
    cal.setTime(startDate);
    int week2 = cal.get(Calendar.WEEK_OF_YEAR);

def todayMeetingWeekNumber = (week-week2) + meetingWeekSeed

想象一下价值观:

startDate= 2014/04/07
meetingWeekSeed = 3

输入:

2014/04/14
2014/04/15
2014/04/21

输出:

4
4
5