Java 类org.joda.time.DateTimeConstants 实例源码
项目:elasticsearch_my
文件:TimeZoneRoundingTests.java
/**
* Randomized test on TimeUnitRounding. Test uses random
* {@link DateTimeUnit} and {@link DateTimeZone} and often (50% of the time)
* chooses test dates that are exactly on or close to offset changes (e.g.
* DST) in the chosen time zone.
*
* It rounds the test date down and up and performs various checks on the
* rounding unit interval that is defined by this. Assumptions tested are
* described in
* {@link #assertInterval(long, long, long, Rounding, DateTimeZone)}
*/
public void testRoundingRandom() {
for (int i = 0; i < 1000; ++i) {
DateTimeUnit timeUnit = randomTimeUnit();
DateTimeZone tz = randomDateTimeZone();
Rounding rounding = new Rounding.TimeUnitRounding(timeUnit, tz);
long date = Math.abs(randomLong() % (2 * (long) 10e11)); // 1970-01-01T00:00:00Z - 2033-05-18T05:33:20.000+02:00
long unitMillis = timeUnit.field(tz).getDurationField().getUnitMillis();
if (randomBoolean()) {
nastyDate(date, tz, unitMillis);
}
final long roundedDate = rounding.round(date);
final long nextRoundingValue = rounding.nextRoundingValue(roundedDate);
assertInterval(roundedDate, date, nextRoundingValue, rounding, tz);
// check correct unit interval width for units smaller than a day, they should be fixed size except for transitions
if (unitMillis <= DateTimeConstants.MILLIS_PER_DAY) {
// if the interval defined didn't cross timezone offset transition, it should cover unitMillis width
if (tz.getOffset(roundedDate - 1) == tz.getOffset(nextRoundingValue + 1)) {
assertThat("unit interval width not as expected for [" + timeUnit + "], [" + tz + "] at "
+ new DateTime(roundedDate), nextRoundingValue - roundedDate, equalTo(unitMillis));
}
}
}
}
项目:CalendarPicker
文件:MyConfig.java
public static CalendarWeek getWeekIncludeThisDay(LocalDate localDate) {
LocalDate monday = localDate.withDayOfWeek(DateTimeConstants.MONDAY);
LocalDate tuesday = localDate.withDayOfWeek(DateTimeConstants.TUESDAY);
LocalDate wednesday = localDate.withDayOfWeek(DateTimeConstants.WEDNESDAY);
LocalDate thursday = localDate.withDayOfWeek(DateTimeConstants.THURSDAY);
LocalDate friday = localDate.withDayOfWeek(DateTimeConstants.FRIDAY);
LocalDate saturday = localDate.withDayOfWeek(DateTimeConstants.SATURDAY);
LocalDate sunday = localDate.withDayOfWeek(DateTimeConstants.SUNDAY);
CalendarWeek calendarWeek = new CalendarWeek(
monday,
tuesday,
wednesday,
thursday,
friday,
saturday,
sunday
);
calendarWeek.firstDayOfCurrentMonth = localDate.withDayOfMonth(1);
calendarWeek.originDate = localDate;
return calendarWeek;
}
项目:Auto.js
文件:TimedTask.java
public static long getDayOfWeekTimeFlag(int dayOfWeek) {
dayOfWeek = (dayOfWeek - 1) % 7 + 1;
switch (dayOfWeek) {
case DateTimeConstants.SUNDAY:
return FLAG_SUNDAY;
case DateTimeConstants.MONDAY:
return FLAG_MONDAY;
case DateTimeConstants.SATURDAY:
return FLAG_SATURDAY;
case DateTimeConstants.WEDNESDAY:
return FLAG_WEDNESDAY;
case DateTimeConstants.TUESDAY:
return FLAG_TUESDAY;
case DateTimeConstants.THURSDAY:
return FLAG_THURSDAY;
case DateTimeConstants.FRIDAY:
return FLAG_FRIDAY;
}
throw new IllegalArgumentException("dayOfWeek = " + dayOfWeek);
}
项目:wulkanowy
文件:TimeUtils.java
public static List<String> getMondaysFromCurrentSchoolYear(String dateFormat) {
LocalDate startDate = new LocalDate(getCurrentSchoolYear(), 9, 1);
LocalDate endDate = new LocalDate(getCurrentSchoolYear() + 1, 8, 31);
List<String> dateList = new ArrayList<>();
LocalDate thisMonday = startDate.withDayOfWeek(DateTimeConstants.MONDAY);
if (startDate.isAfter(thisMonday)) {
startDate = thisMonday.plusWeeks(1);
} else {
startDate = thisMonday;
}
while (startDate.isBefore(endDate)) {
dateList.add(startDate.toString(dateFormat));
startDate = startDate.plusWeeks(1);
}
return dateList;
}
项目:wulkanowy
文件:TimetableFragment.java
private String getDateOfCurrentMonday() {
DateTime currentDate = new DateTime();
if (currentDate.getDayOfWeek() == DateTimeConstants.SATURDAY) {
currentDate = currentDate.plusDays(2);
} else if (currentDate.getDayOfWeek() == DateTimeConstants.SUNDAY) {
currentDate = currentDate.plusDays(1);
} else {
currentDate = currentDate.withDayOfWeek(DateTimeConstants.MONDAY);
}
return currentDate.toString(DATE_PATTERN);
}
项目:cat-is-a-dog
文件:DateUtil.java
/**
* Generates the datetime bounds for the last N weeks, this week inclusive
* The first day of the week is considered to be a Monday (1)
* @param dateTime the anchor date
* @param nPastWeeks the number of weeks to compute
* @return a series of n week objects, containing the start date and end date of those weeks
*/
public static ArrayList<Week>
GetNPastWeeks(DateTime dateTime, int nPastWeeks) {
if (nPastWeeks < 1) return new ArrayList<>();
LocalDate localDate = new LocalDate(dateTime);
DateTime monday = localDate.withDayOfWeek(DateTimeConstants.MONDAY)
.toDateTimeAtStartOfDay();
DateTime sunday = localDate.withDayOfWeek(DateTimeConstants.SUNDAY)
.toDateTimeAtStartOfDay().plusDays(1)
.minusMillis(1);
Week datePair = new Week(monday, sunday);
ArrayList<Week> datePairs = new ArrayList<>(nPastWeeks);
datePairs.add(datePair);
for (int i = 1; i < nPastWeeks; ++i) {
datePairs.add(new Week(
datePairs.get(i - 1).getStartOfWeek().minusWeeks(1),
datePairs.get(i - 1).getEndOfWeek().minusWeeks(1)));
}
Collections.reverse(datePairs);
return datePairs;
}
项目:cat-is-a-dog
文件:HabitDataModel.java
/**
* Convert a habit to its data model
* @param habit the habit to convert
*/
public HabitDataModel(Habit habit) {
key = habit.getKey();
userId = habit.getUserId();
title = habit.getTitle();
reason = habit.getReason();
startDate = habit.getStartDate().getMillis();
schedule = new ArrayList<>(DateTimeConstants.DAYS_PER_WEEK);
for (int i = 0; i < DateTimeConstants.DAYS_PER_WEEK; i++) {
schedule.add(habit.getSchedule().contains(i + 1));
}
completionRate = habit.getCompletionRate();
}
项目:cat-is-a-dog
文件:HabitDataModel.java
/**
* Convert to a habit
* @return the corresponding Habit object
*/
@Exclude
public Habit getHabit() {
HashSet<Integer> newSchedule = new HashSet<>(DateTimeConstants.DAYS_PER_WEEK);
for(int i = 0; i < schedule.size(); i++) {
if(schedule.get(i)) {
newSchedule.add(i + 1);
}
}
Habit habit = new Habit();
habit.setKey(key);
habit.setUserId(userId);
habit.setTitle(title);
habit.setReason(reason);
habit.setStartDate(new DateTime(startDate));
habit.setSchedule(newSchedule);
habit.setCompletionRate(completionRate);
if (completionRate != null) {
habit.setStatus(HabitStatus.fromCompletionRate(completionRate));
}
return habit;
}
项目:RIT-Dining-Planner-Android
文件:TestDateTimeZone.java
public void testGetMillisKeepLocal() {
long millisLondon = TEST_TIME_SUMMER;
long millisParis = TEST_TIME_SUMMER - 1L * DateTimeConstants.MILLIS_PER_HOUR;
assertEquals(millisLondon, LONDON.getMillisKeepLocal(LONDON, millisLondon));
assertEquals(millisParis, LONDON.getMillisKeepLocal(LONDON, millisParis));
assertEquals(millisLondon, PARIS.getMillisKeepLocal(PARIS, millisLondon));
assertEquals(millisParis, PARIS.getMillisKeepLocal(PARIS, millisParis));
assertEquals(millisParis, LONDON.getMillisKeepLocal(PARIS, millisLondon));
assertEquals(millisLondon, PARIS.getMillisKeepLocal(LONDON, millisParis));
DateTimeZone zone = DateTimeZone.getDefault();
try {
DateTimeZone.setDefault(LONDON);
assertEquals(millisLondon, PARIS.getMillisKeepLocal(null, millisParis));
} finally {
DateTimeZone.setDefault(zone);
}
}
项目:librus-client
文件:APIClient.java
private Timetable createLessonsForWeek(LocalDate weekStart) {
Timetable result = new Timetable();
for (int dayNo = DateTimeConstants.MONDAY; dayNo <= DateTimeConstants.FRIDAY; dayNo++) {
List<List<JsonLesson>> schoolDay = new ArrayList<>();
for (int lessonNo = 0; lessonNo < repository.getList(PlainLesson.class).size(); lessonNo++) {
ImmutableJsonLesson lesson = templates.jsonLesson()
.withDayNo(dayNo);
schoolDay.add(withLessonNumber(lesson, lessonNo));
}
result.put(weekStart.plusDays(dayNo - 1), schoolDay);
}
//weekend
result.put(weekStart.plusDays(5), newArrayList());
result.put(weekStart.plusDays(6), newArrayList());
result.get(weekStart).add(withLessonNumber(cancelledLesson(), 7));
result.get(weekStart.plusDays(1)).add(withLessonNumber(substitutionLesson(), 7));
//Empty lesson
result.get(weekStart.plusDays(2)).remove(2);
return result;
}
项目:librus-client
文件:AnnouncementItem.java
@Override
public void bindViewHolder(FlexibleAdapter adapter, ViewHolder holder, int position, List payloads) {
this.backgroundView = holder.background;
this.title = holder.announcementSubject;
holder.announcementSubject.setText(announcement.subject());
ViewCompat.setTransitionName(holder.background, "announcement_background_" + announcement.id());
LibrusUtils.setTextViewValue(holder.announcementTeacherName, announcement.addedByName());
holder.announcementContent.setText(announcement.content());
Reader reader = new Reader(holder.itemView.getContext());
if (!reader.isRead(announcement))
holder.announcementSubject.setTypeface(holder.announcementSubject.getTypeface(), Typeface.BOLD);
else
holder.announcementSubject.setTypeface(null, Typeface.NORMAL);
if (announcement.startDate().isBefore(LocalDate.now().withDayOfWeek(DateTimeConstants.MONDAY)))
holder.announcementDate.setText(announcement.startDate().toString("d MMM."));
else
holder.announcementDate.setText(announcement.startDate().dayOfWeek().getAsShortText(new Locale("pl")));
}
项目:ComeAndGo
文件:DateTimeUtils.java
/**
* @param d2
* @param d1
* @return the difference d2-d1 in minutes
*/
public static long getDateTimeDifferenceInMinutes(DateTime d2, DateTime d1) {
if(d2.toLocalDate().isEqual(d1.toLocalDate())) {
return d2.getMinuteOfDay() - d1.getMinuteOfDay();
}
else {
int minutesFromD1ToNextDay = DateTimeConstants.MINUTES_PER_DAY - d1.getMinuteOfDay();
int minutesFromD2ToPreviousDay = d2.getMinuteOfDay();
DateTime dayAfterD1 = endOfDay(d1).plusMillis(1);
DateTime dayBeforeD2 = startOfDay(d2);
int daysDifference = dayBeforeD2.getDayOfYear() - dayAfterD1.getDayOfYear()
+ (dayBeforeD2.getYear() - dayAfterD1.getYear()) * 365;
return minutesFromD1ToNextDay + minutesFromD2ToPreviousDay + daysDifference * DateTimeConstants.MINUTES_PER_DAY;
}
}
项目:pubsub
文件:Driver.java
private static int millisPerUnit(String unit) {
switch (Ascii.toLowerCase(unit)) {
case "d":
return DateTimeConstants.MILLIS_PER_DAY;
case "h":
return DateTimeConstants.MILLIS_PER_HOUR;
case "m":
return DateTimeConstants.MILLIS_PER_MINUTE;
case "s":
return DateTimeConstants.MILLIS_PER_SECOND;
case "ms":
return 1;
default:
throw new IllegalArgumentException("Unknown duration unit " + unit);
}
}
项目:dhis2-core
文件:WeeklyPeriodTypeTest.java
@Test
public void testCreatePeriod()
{
DateTime testDate = new DateTime( 2009, 4, 27, 0, 0 );
WeeklyPeriodType wpt = new WeeklyPeriodType();
Period p = wpt.createPeriod( testDate.toDate() );
DateTime startDate = new DateTime( 2009, 4, 27, 0, 0 );
DateTime endDate = new DateTime( 2009, 5, 3, 0, 0 );
assertFalse( "start date after given date", startDate.isAfter( p.getStartDate().getTime() ) );
assertFalse( "end date before given date", endDate.isAfter( p.getEndDate().getTime() ) );
assertTrue( startDate.getDayOfWeek() == DateTimeConstants.MONDAY );
assertTrue( endDate.getDayOfWeek() == DateTimeConstants.SUNDAY );
}
项目:scientific-publishing
文件:ArxivImporter.java
@Scheduled(fixedRate=DateTimeConstants.MILLIS_PER_DAY)
public void run() {
LocalDateTime lastImport = service.getLastImportDate(PublicationSource.ARXIV);
for (String feedKey : FEEDS) {
SyndFeedInput input = new SyndFeedInput();
try {
SyndFeed feed = input.build(new XmlReader(new URL(ROOT_RSS_URL + feedKey)));
List<String> ids = new ArrayList<String>(feed.getEntries().size());
for (SyndEntry entry : feed.getEntries()) {
ids.add(entry.getLink().replace(URI_PREFIX, ""));
}
URL url = new URL("http://export.arxiv.org/api/query?id_list=" + joiner.join(ids) + "&max_results=100");
try (InputStream inputStream = url.openStream()) {
List<Publication> publications = extractPublications(inputStream, lastImport, ids.size());
publications = publications.stream().filter(p -> p.getCreated().isAfter(lastImport)).collect(Collectors.toList());
logger.info("Obtained publications from arxiv for category {}: {}", feedKey, publications.size());
service.storePublication(publications);
}
} catch (IllegalArgumentException | FeedException | IOException e) {
logger.error("Problem getting arxiv RSS feed", e);
}
}
}
项目:onplan
文件:ServicesActivationJob.java
private boolean isMarketOpen(DateTime dateTime) {
checkNotNull(dateTime);
checkNotNullOrEmpty(forexCloseTime);
checkNotNullOrEmpty(forexOpenTime);
int dayOfWeek = dateTime.dayOfWeek().get();
switch (dayOfWeek) {
case DateTimeConstants.SATURDAY:
return false;
case DateTimeConstants.FRIDAY:
DateTime marketCloseTime = DateTime.parse(forexCloseTime, DATE_TIME_FORMATTER)
.plus(dateTime.withTimeAtStartOfDay().getMillis());
return dateTime.compareTo(marketCloseTime) < 0;
case DateTimeConstants.SUNDAY:
DateTime marketOpenTime = DateTime.parse(forexOpenTime, DATE_TIME_FORMATTER)
.plus(dateTime.withTimeAtStartOfDay().getMillis());
return dateTime.compareTo(marketOpenTime) >= 0;
case DateTimeConstants.MONDAY:
case DateTimeConstants.TUESDAY:
case DateTimeConstants.WEDNESDAY:
case DateTimeConstants.THURSDAY:
return true;
default:
throw new IllegalArgumentException(
String.format("Unsupported day of the week [%d]", dayOfWeek));
}
}
项目:TinyTravelTracker
文件:JulianChronology.java
long calculateFirstDayOfYearMillis(int year) {
// Java epoch is 1970-01-01 Gregorian which is 1969-12-19 Julian.
// Calculate relative to the nearest leap year and account for the
// difference later.
int relativeYear = year - 1968;
int leapYears;
if (relativeYear <= 0) {
// Add 3 before shifting right since /4 and >>2 behave differently
// on negative numbers.
leapYears = (relativeYear + 3) >> 2;
} else {
leapYears = relativeYear >> 2;
// For post 1968 an adjustment is needed as jan1st is before leap day
if (!isLeapYear(year)) {
leapYears++;
}
}
long millis = (relativeYear * 365L + leapYears) * (long)DateTimeConstants.MILLIS_PER_DAY;
// Adjust to account for difference between 1968-01-01 and 1969-12-19.
return millis - (366L + 352) * DateTimeConstants.MILLIS_PER_DAY;
}
项目:TinyTravelTracker
文件:CopticChronology.java
long calculateFirstDayOfYearMillis(int year) {
// Java epoch is 1970-01-01 Gregorian which is 1686-04-23 Coptic.
// Calculate relative to the nearest leap year and account for the
// difference later.
int relativeYear = year - 1687;
int leapYears;
if (relativeYear <= 0) {
// Add 3 before shifting right since /4 and >>2 behave differently
// on negative numbers.
leapYears = (relativeYear + 3) >> 2;
} else {
leapYears = relativeYear >> 2;
// For post 1687 an adjustment is needed as jan1st is before leap day
if (!isLeapYear(year)) {
leapYears++;
}
}
long millis = (relativeYear * 365L + leapYears)
* (long)DateTimeConstants.MILLIS_PER_DAY;
// Adjust to account for difference between 1687-01-01 and 1686-04-23.
return millis + (365L - 112) * DateTimeConstants.MILLIS_PER_DAY;
}
项目:TinyTravelTracker
文件:BasicWeekyearDateTimeField.java
public long getDifferenceAsLong(long minuendInstant, long subtrahendInstant) {
if (minuendInstant < subtrahendInstant) {
return -getDifference(subtrahendInstant, minuendInstant);
}
int minuendWeekyear = get(minuendInstant);
int subtrahendWeekyear = get(subtrahendInstant);
long minuendRem = remainder(minuendInstant);
long subtrahendRem = remainder(subtrahendInstant);
// Balance leap weekyear differences on remainders.
if (subtrahendRem >= WEEK_53 && iChronology.getWeeksInYear(minuendWeekyear) <= 52) {
subtrahendRem -= DateTimeConstants.MILLIS_PER_WEEK;
}
int difference = minuendWeekyear - subtrahendWeekyear;
if (minuendRem < subtrahendRem) {
difference--;
}
return difference;
}
项目:TinyTravelTracker
文件:BasicChronology.java
public long getDateTimeMillis(
int year, int monthOfYear, int dayOfMonth,
int hourOfDay, int minuteOfHour, int secondOfMinute, int millisOfSecond)
throws IllegalArgumentException {
Chronology base;
if ((base = getBase()) != null) {
return base.getDateTimeMillis(year, monthOfYear, dayOfMonth,
hourOfDay, minuteOfHour, secondOfMinute, millisOfSecond);
}
FieldUtils.verifyValueBounds(DateTimeFieldType.hourOfDay(), hourOfDay, 0, 23);
FieldUtils.verifyValueBounds(DateTimeFieldType.minuteOfHour(), minuteOfHour, 0, 59);
FieldUtils.verifyValueBounds(DateTimeFieldType.secondOfMinute(), secondOfMinute, 0, 59);
FieldUtils.verifyValueBounds(DateTimeFieldType.millisOfSecond(), millisOfSecond, 0, 999);
return getDateMidnightMillis(year, monthOfYear, dayOfMonth)
+ hourOfDay * DateTimeConstants.MILLIS_PER_HOUR
+ minuteOfHour * DateTimeConstants.MILLIS_PER_MINUTE
+ secondOfMinute * DateTimeConstants.MILLIS_PER_SECOND
+ millisOfSecond;
}
项目:TinyTravelTracker
文件:BasicChronology.java
/**
* @param instant millis from 1970-01-01T00:00:00Z
*/
int getDayOfWeek(long instant) {
// 1970-01-01 is day of week 4, Thursday.
long daysSince19700101;
if (instant >= 0) {
daysSince19700101 = instant / DateTimeConstants.MILLIS_PER_DAY;
} else {
daysSince19700101 = (instant - (DateTimeConstants.MILLIS_PER_DAY - 1))
/ DateTimeConstants.MILLIS_PER_DAY;
if (daysSince19700101 < -3) {
return 7 + (int) ((daysSince19700101 + 4) % 7);
}
}
return 1 + (int) ((daysSince19700101 + 3) % 7);
}
项目:TinyTravelTracker
文件:BasicGJChronology.java
long getYearDifference(long minuendInstant, long subtrahendInstant) {
int minuendYear = getYear(minuendInstant);
int subtrahendYear = getYear(subtrahendInstant);
// Inlined remainder method to avoid duplicate calls to get.
long minuendRem = minuendInstant - getYearMillis(minuendYear);
long subtrahendRem = subtrahendInstant - getYearMillis(subtrahendYear);
// Balance leap year differences on remainders.
if (subtrahendRem >= FEB_29) {
if (isLeapYear(subtrahendYear)) {
if (!isLeapYear(minuendYear)) {
subtrahendRem -= DateTimeConstants.MILLIS_PER_DAY;
}
} else if (minuendRem >= FEB_29 && isLeapYear(minuendYear)) {
minuendRem -= DateTimeConstants.MILLIS_PER_DAY;
}
}
int difference = minuendYear - subtrahendYear;
if (minuendRem < subtrahendRem) {
difference--;
}
return difference;
}
项目:TinyTravelTracker
文件:EthiopicChronology.java
long calculateFirstDayOfYearMillis(int year) {
// Java epoch is 1970-01-01 Gregorian which is 1962-04-23 Ethiopic.
// Calculate relative to the nearest leap year and account for the
// difference later.
int relativeYear = year - 1963;
int leapYears;
if (relativeYear <= 0) {
// Add 3 before shifting right since /4 and >>2 behave differently
// on negative numbers.
leapYears = (relativeYear + 3) >> 2;
} else {
leapYears = relativeYear >> 2;
// For post 1963 an adjustment is needed as jan1st is before leap day
if (!isLeapYear(year)) {
leapYears++;
}
}
long millis = (relativeYear * 365L + leapYears)
* (long)DateTimeConstants.MILLIS_PER_DAY;
// Adjust to account for difference between 1963-01-01 and 1962-04-23.
return millis + (365L - 112) * DateTimeConstants.MILLIS_PER_DAY;
}
项目:TinyTravelTracker
文件:GregorianChronology.java
long calculateFirstDayOfYearMillis(int year) {
// Initial value is just temporary.
int leapYears = year / 100;
if (year < 0) {
// Add 3 before shifting right since /4 and >>2 behave differently
// on negative numbers. When the expression is written as
// (year / 4) - (year / 100) + (year / 400),
// it works for both positive and negative values, except this optimization
// eliminates two divisions.
leapYears = ((year + 3) >> 2) - leapYears + ((leapYears + 3) >> 2) - 1;
} else {
leapYears = (year >> 2) - leapYears + (leapYears >> 2);
if (isLeapYear(year)) {
leapYears--;
}
}
return (year * 365L + (leapYears - DAYS_0000_TO_1970)) * DateTimeConstants.MILLIS_PER_DAY;
}
项目:ExpenseManager
文件:DateUtilTest.java
@Test
public void shouldReturnCurrentWeeksDatesFromMonToSun() throws Exception {
LocalDate now = new LocalDate();
assertThat(now.withDayOfWeek(DateTimeConstants.MONDAY).toString(), is("2015-08-31"));
assertThat(now.withDayOfWeek(DateTimeConstants.SUNDAY).toString(), is("2015-09-06"));
ArrayList<String> currentWeeksDates = DateUtil.getCurrentWeeksDates();
assertThat(currentWeeksDates.size(), is(7));
assertThat(currentWeeksDates, hasItems(
"31-08-2015",
"01-09-2015",
"02-09-2015",
"03-09-2015",
"04-09-2015",
"05-09-2015",
"06-09-2015")
);
}
项目:onetwo
文件:DateRangeStaticFacotry.java
public static Collection<DateRange> splitAsDateRangeByWeek(LocalDate start, LocalDate end){
Set<DateRange> dates = new LinkedHashSet<DateRange>();
dates.add(new DateRange(start, start.withDayOfWeek(DateTimeConstants.SUNDAY)));
LocalDate startDateOfWeek = start.withDayOfWeek(DateTimeConstants.MONDAY).plusWeeks(1);
while(!startDateOfWeek.isAfter(end)){
LocalDate endDateOfWeek = startDateOfWeek.withDayOfWeek(DateTimeConstants.SUNDAY);
if(endDateOfWeek.isAfter(end)){
endDateOfWeek = end;
}
dates.add(new DateRange(startDateOfWeek, endDateOfWeek));
startDateOfWeek = startDateOfWeek.plusWeeks(1);
}
return dates;
}
项目:AgileAlligators
文件:WeeklyPeriodTypeTest.java
@Test
public void testCreatePeriod()
{
DateTime testDate = new DateTime( 2009, 4, 27, 0, 0 );
WeeklyPeriodType wpt = new WeeklyPeriodType();
Period p = wpt.createPeriod( testDate.toDate() );
DateTime startDate = new DateTime( 2009, 4, 27, 0, 0 );
DateTime endDate = new DateTime( 2009, 5, 3, 0, 0 );
assertFalse( "start date after given date", startDate.isAfter( p.getStartDate().getTime() ) );
assertFalse( "end date before given date", endDate.isAfter( p.getEndDate().getTime() ) );
assertTrue( startDate.getDayOfWeek() == DateTimeConstants.MONDAY );
assertTrue( endDate.getDayOfWeek() == DateTimeConstants.SUNDAY );
}
项目:spacedog-server
文件:LafargeCesioResource.java
private JsonNode toLeaderboard(List<HighScore> highScores) {
highScores.sort(null);
ObjectNode results = Json8.object();
ArrayNode today = results.putArray("today");
ArrayNode week = results.putArray("week");
ArrayNode forever = results.putArray("forever");
DateTime startOfDay = DateTime.now().withTimeAtStartOfDay();
DateTime startOfWeek = startOfDay.withDayOfWeek(DateTimeConstants.MONDAY);
for (HighScore score : highScores) {
if (score.date.isAfter(startOfDay)) {
today.add(score.toNode());
week.add(score.toNode());
} else if (score.date.isAfter(startOfWeek))
week.add(score.toNode());
forever.add(score.toNode());
}
return results;
}
项目:motech
文件:MotechSchedulerServiceImplBundleIT.java
@Test
public void shouldScheduleInterveningRepeatJob() throws SchedulerException {
try {
fakeNow(newDateTime(2020, 7, 15, 10, 0, 0));
Map<String, Object> params = new HashMap<>();
params.put(MotechSchedulerService.JOB_ID_KEY, "job_id");
schedulerService.scheduleRepeatingJob(
new RepeatingSchedulableJob(
new MotechEvent("test_event", params),
DateTimeConstants.SECONDS_PER_DAY,
newDateTime(2020, 7, 14, 12, 0, 0),
newDateTime(2020, 7, 18, 12, 0, 0),
true)
);
List<DateTime> fireTimes = getFireTimes("test_event-job_id-repeat");
assertEquals(asList(
newDateTime(2020, 7, 15, 12, 0, 0),
newDateTime(2020, 7, 16, 12, 0, 0),
newDateTime(2020, 7, 17, 12, 0, 0)),
fireTimes);
} finally {
stopFakingTime();
}
}
项目:motech
文件:MotechSchedulerServiceImplBundleIT.java
@Test
public void shouldScheduleInterveningRepeatJobWithoutEndDate() throws SchedulerException {
try {
fakeNow(newDateTime(2020, 7, 15, 10, 0, 0));
Map<String, Object> params = new HashMap<>();
params.put(MotechSchedulerService.JOB_ID_KEY, "job_id");
RepeatingSchedulableJob repeatJob = new RepeatingSchedulableJob(
new MotechEvent("test_event", params),
3,
DateTimeConstants.SECONDS_PER_DAY,
newDateTime(2020, 7, 13, 12, 0, 0),
null,
true);
repeatJob.setUseOriginalFireTimeAfterMisfire(false);
schedulerService.scheduleRepeatingJob(repeatJob);
List<DateTime> fireTimes = getFireTimes("test_event-job_id-repeat");
assertEquals(asList(
newDateTime(2020, 7, 15, 12, 0, 0),
newDateTime(2020, 7, 16, 12, 0, 0)),
fireTimes);
} finally {
stopFakingTime();
}
}
项目:welshare
文件:FacebookService.java
private List<Message> getIncomingMessages(long lastMessageMillis, User user) {
if (!isServiceEnabled(user)) {
return Collections.emptyList();
}
try {
FacebookClient client = helper.getBackgroundFacebookClient(user);
List<StreamPost> feed = client.executeFqlQuery(NEWS_FEED_QUERY + " AND created_time > "
+ (lastMessageMillis / DateTimeConstants.MILLIS_PER_SECOND + 1) + " LIMIT 20",
StreamPost.class);
List<Message> messages = helper.streamPostsToMessages(feed,
user.getFacebookSettings().isFetchImages(),
user.getFacebookSettings().getUserId(), client);
return messages;
} catch (FacebookException e) {
//do nothing, will re-attempt on next run
handleException("Problem retrieving incoming facebook messages", e, user);
return Collections.emptyList();
}
}
项目:welshare
文件:ScheduledMessagesJob.java
@Scheduled(fixedRate=DateTimeConstants.MILLIS_PER_MINUTE)
@SqlTransactional
public void shareScheduledMessages() {
while (true) {
if (queue.isEmpty()) {
break;
}
DateTime messageTime = queue.peek().getScheduledTime();
// send messages whose time is before the current moment. This job runs every minute,
// so the maximum delay for a message will be 1 minute
if (messageTime.isBeforeNow()) {
ScheduledMessage msg = queue.poll();
shareService.share(msg.getText(),
msg.getUserId(),
Arrays.asList(StringUtils.split(msg.getPictureUrls(), DELIMITER)),
Arrays.asList(StringUtils.split(msg.getExternalSites(), DELIMITER)),
Arrays.asList(StringUtils.split(msg.getHideFromUsernames(), DELIMITER)),
msg.isHideFromCloseFriends());
shareService.delete(msg);
} else {
break;
}
}
}
项目:welshare
文件:MessageImportJob.java
@Scheduled(fixedRate=2 * DateTimeConstants.MILLIS_PER_HOUR)
public void importMessages() {
userDao.performBatched(User.class, 100, new Dao.PageableOperation<User>() {
@Override
public void execute() {
for (User user : getData()) {
for (SocialNetworkService sns : socialNetworks) {
try {
sns.importMessages(user); // the method itself verifies whether the user has configured import
} catch (Exception ex) {
logger.error("Problem importing messages for user " + user, ex);
}
}
}
}
});
}
项目:optionTrader
文件:ExpirationService.java
/**
* Gets all expirations for the current symbol and then excludes dates that are not part of the monthly expirations.
* Dates are 15th - 22nd, if it's the 22nd, then the 22nd has to be a Sat
*
* There are some expirations on Friday and Sat where 1 of the 2 only has a few options available.
*
* @return monthly expirations
*/
public List<Date> getMonthlyExpirations() {
List<Date> monthlyExpirations = new ArrayList<Date>();
List<Date> allExpirations = getExpirations();
for (Date date : allExpirations) {
DateTime jDate = new DateTime(date);
if (jDate.dayOfMonth().get() >= 15 && jDate.dayOfMonth().get() <= 22) {
if ((jDate.dayOfMonth().get() == 22 && jDate.getDayOfWeek() != DateTimeConstants.SATURDAY)
|| jDate.getDayOfWeek() == DateTimeConstants.SUNDAY
|| jDate.getDayOfWeek() == DateTimeConstants.MONDAY
|| jDate.getDayOfWeek() == DateTimeConstants.TUESDAY
|| jDate.getDayOfWeek() == DateTimeConstants.WEDNESDAY
|| jDate.getDayOfWeek() == DateTimeConstants.THURSDAY
) {
// skip
} else {
//System.out.println(jDate.toString() + " - " + jDate.getDayOfWeek());
monthlyExpirations.add(date);
}
}
}
return monthlyExpirations;
}
项目:wulkanowy
文件:TimetableFragmentTab.java
private boolean getExpanded(String dayDate) {
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(DATE_PATTERN);
DateTime dayTime = dateTimeFormatter.parseDateTime(dayDate);
DateTime currentDate = new DateTime();
if (currentDate.getDayOfWeek() == DateTimeConstants.SATURDAY) {
currentDate = currentDate.plusDays(2);
} else if (currentDate.getDayOfWeek() == DateTimeConstants.SUNDAY) {
currentDate = currentDate.plusDays(1);
}
return DateTimeComparator.getDateOnlyInstance().compare(currentDate, dayTime) == 0;
}
项目:wulkanowy
文件:TimetableFragmentTab.java
private Week getWeek() {
if (date == null) {
LocalDate currentMonday = new LocalDate().withDayOfWeek(DateTimeConstants.MONDAY);
date = currentMonday.toString(DATE_PATTERN);
}
return getDaoSession().getWeekDao().queryBuilder()
.where(WeekDao.Properties.StartDayDate.eq(date),
WeekDao.Properties.UserId.eq(getUserId()))
.unique();
}
项目:legendarybot
文件:AffixCommand.java
@Override
public void execute(MessageReceivedEvent event, String[] args) {
DateTime current = new DateTime(DateTimeZone.forID("America/Montreal"));
while (current.getDayOfWeek() != DateTimeConstants.TUESDAY) {
current = current.minusDays(1);
}
int weeks = Weeks.weeksBetween(Utils.startDateMythicPlus, current).getWeeks();
String[] weekAffixes = Utils.mythicPlusAffixes[weeks % 12];
event.getChannel().sendMessage(Utils.createMythicEmbed(bot, event.getGuild(), weekAffixes).build()).queue();
}
项目:legendarybot
文件:NextAffixCommand.java
@Override
public void execute(MessageReceivedEvent event, String[] args) {
DateTime current = new DateTime(DateTimeZone.forID("America/Montreal"));
if (current.getDayOfWeek() == DateTimeConstants.TUESDAY) {
current = current.plusDays(1);
}
while (current.getDayOfWeek() != DateTimeConstants.TUESDAY) {
current = current.plusDays(1);
}
int weeks = Weeks.weeksBetween(Utils.startDateMythicPlus, current).getWeeks();
String[] weekAffixes = Utils.mythicPlusAffixes[weeks % 12];
event.getChannel().sendMessage(Utils.createMythicEmbed(bot, event.getGuild(), weekAffixes).build()).queue();
}
项目:raven
文件:DateUtils.java
/**
* 计算当前是星期几
* 返回 星期x
*/
public static String getWeekday(Date date)
{
DateTime dt = new DateTime(date);
String weekday = "";
//星期
switch(dt.getDayOfWeek()) {
case DateTimeConstants.SUNDAY:
weekday = "星期日";
break;
case DateTimeConstants.MONDAY:
weekday = "星期一";
break;
case DateTimeConstants.TUESDAY:
weekday = "星期二";
break;
case DateTimeConstants.WEDNESDAY:
weekday = "星期三";
break;
case DateTimeConstants.THURSDAY:
weekday = "星期四";
break;
case DateTimeConstants.FRIDAY:
weekday = "星期五";
break;
case DateTimeConstants.SATURDAY:
weekday = "星期六";
break;
}
return weekday;
}
项目:raven
文件:DateUtils.java
/** 返回 周x */
public static String getWeekday2(Date date)
{
DateTime dt = new DateTime(date);
String weekday = "";
//星期
switch(dt.getDayOfWeek()) {
case DateTimeConstants.SUNDAY:
weekday = "周日";
break;
case DateTimeConstants.MONDAY:
weekday = "周一";
break;
case DateTimeConstants.TUESDAY:
weekday = "周二";
break;
case DateTimeConstants.WEDNESDAY:
weekday = "周三";
break;
case DateTimeConstants.THURSDAY:
weekday = "周四";
break;
case DateTimeConstants.FRIDAY:
weekday = "周五";
break;
case DateTimeConstants.SATURDAY:
weekday = "周六";
break;
}
return weekday;
}