⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testjdatetime2.java

📁 Jodd是一个开源的公用Java基础类库
💻 JAVA
字号:
package jodd.datetime;

import java.util.GregorianCalendar;

import junit.framework.TestCase;

public class TestJDateTime2 extends TestCase {

	public void testCompareToAndAdd() {
		JDateTime gt1 = new JDateTime();
		if (gt1.getDay() > 28) {		// back and forth adds works without corrections
			gt1.setDay(28);				// for days that exists in all months
		}

		JDateTime gt2 = gt1.getJDateTimeInstance();
		assertEquals(0, gt1.compareTo(gt2));

		for (int i = 1; i < 1000; i++) {
			gt2.add(i, 0, 0);
			assertEquals(-1, gt1.compareTo(gt2));
			gt2.addYear(-2 * i);
			assertEquals(1, gt1.compareTo(gt2));
			gt2.addYear(i);
			assertEquals(0, gt1.compareTo(gt2));
		}
		
		for (int i = 1; i < 60000; i++) {
			gt2.add(0, i, 0);
			assertEquals(-1, gt1.compareTo(gt2));
			gt2.addMonth(-i);
			assertEquals(0, gt1.compareTo(gt2));
		}
		for (int i = 1; i < 5000; i++) {				// because of year 1582, months moving
			gt2.add(0, i, 0);							// before it still doesn't work
			assertEquals(-1, gt1.compareTo(gt2));
			gt2.addMonth(-2 * i);
			assertEquals(1, gt1.compareTo(gt2));
			gt2.addMonth(i);
			assertEquals(0, gt1.compareTo(gt2));
		}

		for (int i = 1; i < 10000; i++) {
			gt2.add(0, 0, i);
			assertEquals(-1, gt1.compareTo(gt2));
			gt2.addDay(-3 * i);
			assertEquals(1, gt1.compareTo(gt2));
			gt2.addDay(2 * i);
			assertEquals(0, gt1.compareTo(gt2));
		}

		for (int i = 1; i < 100000; i++) {
			gt2.addTime(i, 0, 0);
			assertEquals(-1, gt1.compareTo(gt2));
			gt2.addHour(-4 * i);
			assertEquals(1, gt1.compareTo(gt2));
			gt2.addHour(3 * i);
			assertEquals(0, gt1.compareTo(gt2));
		}

		for (int i = 1; i < 100000; i++) {
			gt2.addTime(0, i, 0);
			assertEquals(-1, gt1.compareTo(gt2));
			gt2.addMinute(-5 * i);
			assertEquals(1, gt1.compareTo(gt2));
			gt2.addMinute(4 * i);
			assertEquals(0, gt1.compareTo(gt2));
		}

		for (int i = 1; i < 1000000; i++) {
			gt2.addTime(0, 0, i);
			assertEquals(-1, gt1.compareTo(gt2));
			gt2.addSecond(- 7 * i);
			assertEquals(1, gt1.compareTo(gt2));
			gt2.addSecond(6 * i);
			assertEquals(0, gt1.compareTo(gt2));
		}

		for (int i = 1; i < 1000000; i++) {
			gt2.addTime(0, 0, i / 1000.0);
			assertEquals(-1, gt1.compareTo(gt2));
			gt2.addMillisecond(-8 * i);
			assertEquals(1, gt1.compareTo(gt2));
			gt2.addMillisecond(7 * i);
			assertEquals(0, gt1.compareTo(gt2));
		}
	}
	



	public void testWeekOfYear() {
		JDateTime gt = new JDateTime();
		GregorianCalendar gc = new GregorianCalendar();
		int[] _fdiw = {0, GregorianCalendar.MONDAY, GregorianCalendar.TUESDAY, GregorianCalendar.WEDNESDAY, GregorianCalendar.THURSDAY, GregorianCalendar.FRIDAY, GregorianCalendar.SATURDAY, GregorianCalendar.SUNDAY};		
		
		// test all starting dates (first day in week)
		for (int fdiw = 1; fdiw <= 7; fdiw++) {
			gc.setFirstDayOfWeek(_fdiw[fdiw]);

			// test all minimal days in first week
			for (int min = 1; min <= 7; min++) {
				gc.setMinimalDaysInFirstWeek(min);
				gt.setWeekDefinitionAlt(fdiw, min);

				// test many years
				for (int y = 1800; y < 3000; y++) {
					gt.set(y, 1, 1);
					gc.set(y, 0, 1);
		
					int total = gt.isLeap() ? 366 : 365;
					
					// test all days
					for (int i = 0; i < total; i++) {
						assertEquals(gc.get(GregorianCalendar.DAY_OF_MONTH), gt.getDay());
						assertEquals(gc.get(GregorianCalendar.MONTH) + 1, gt.getMonth());
						assertEquals(gc.get(GregorianCalendar.YEAR), gt.getYear());
						assertEquals(gc.get(GregorianCalendar.DAY_OF_YEAR), gt.getDayOfYear());
						int dow = gc.get(GregorianCalendar.DAY_OF_WEEK) - 1;
						if (dow == 0) {
							dow = 7;
						}
						assertEquals(dow, gt.getDayOfWeek());
						assertEquals(gc.get(GregorianCalendar.WEEK_OF_YEAR), gt.getWeekOfYear());
						assertEquals(gc.get(GregorianCalendar.WEEK_OF_MONTH), gt.getWeekOfMonth());

						gt.addDay(1);
						gc.roll(GregorianCalendar.DAY_OF_YEAR, true);
					}
				}
			}
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -