嘎,圣杯;每周向变量添加 +1



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

我在想有一个日期"开始日期"和整数"会议周",所以例如

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

所以在时髦中,我可以做这样的事情:

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

我怎样才能获得周数?

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

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))

像这样:

def today = new Date()
def start = today + 45
def meetingWeek = 1
( today..start ).step( 7 ) { meetingWeek++ }
println meetingWeek

我的解决方案是:

    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

最新更新