Skip to content

Commit ae44d6e

Browse files
New Examples
1 parent e7258a5 commit ae44d6e

File tree

3 files changed

+181
-0
lines changed

3 files changed

+181
-0
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package com.howtodoinjava.core.datetime;
2+
3+
import java.time.LocalDate;
4+
import java.time.LocalDateTime;
5+
import java.time.LocalTime;
6+
import java.time.OffsetTime;
7+
import java.time.ZoneId;
8+
import java.time.ZoneOffset;
9+
import java.time.ZonedDateTime;
10+
import java.time.temporal.ChronoUnit;
11+
12+
public class ElapsedTimeSinceMidnight {
13+
14+
public static void main(String[] args) {
15+
System.out.println(getElapsedSecondsSinceMidnight());
16+
System.out.println(getElapsedMillisSinceMidnight());
17+
18+
System.out.println(getElapsedSecondsSinceMidnightAtZone(ZoneOffset.ofHours(-5)));
19+
System.out.println(getElapsedSecondsSinceMidnightAtZone(ZoneId.of("America/New_York")));
20+
System.out.println(getElapsedSecondsSinceMidnightAtZone(ZoneOffset.UTC));
21+
22+
System.out.println(getElapsedSecondsSinceMidnightUsingLocalDateTime());
23+
System.out.println(getElapsedSecondsSinceMidnightUsingZonedDateTime());
24+
}
25+
26+
public static long getElapsedSecondsSinceMidnightAtZone(ZoneId zoneId) {
27+
28+
LocalTime currentTime = LocalTime.now(zoneId);
29+
return ChronoUnit.SECONDS.between(LocalTime.MIDNIGHT, currentTime);
30+
}
31+
32+
public static long getElapsedSecondsSinceMidnight() {
33+
LocalTime midnight = LocalTime.MIDNIGHT;
34+
LocalTime currentTime = LocalTime.now();
35+
return ChronoUnit.SECONDS.between(midnight, currentTime);
36+
}
37+
38+
public static long getElapsedMillisSinceMidnight() {
39+
LocalTime midnight = LocalTime.MIDNIGHT;
40+
LocalTime currentTime = LocalTime.now();
41+
return ChronoUnit.MILLIS.between(midnight, currentTime);
42+
}
43+
44+
public static long getElapsedSecondsSinceMidnightUsingLocalDateTime() {
45+
46+
LocalDateTime currentTime = LocalDateTime.now();
47+
LocalDateTime midnight = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT);
48+
49+
return ChronoUnit.SECONDS.between(midnight, currentTime);
50+
}
51+
52+
public static long getElapsedSecondsSinceMidnightUsingZonedDateTime() {
53+
54+
ZonedDateTime currentTime = ZonedDateTime.now();
55+
ZonedDateTime midnight = ZonedDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT, ZoneId.systemDefault());
56+
57+
return ChronoUnit.SECONDS.between(midnight, currentTime);
58+
}
59+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.howtodoinjava.core.datetime;
2+
3+
import java.time.Duration;
4+
import java.time.LocalDate;
5+
import java.time.LocalDateTime;
6+
import java.util.ArrayList;
7+
import java.util.List;
8+
9+
public class SplitDateRangeIntoEqualIntervals {
10+
11+
public static void main(String[] args) {
12+
13+
int equalParts = 52;
14+
15+
LocalDateTime start = LocalDateTime.of(2021, 1, 1, 0, 0, 0);
16+
LocalDateTime end = LocalDateTime.of(2021, 12, 31, 0, 0, 0);
17+
18+
System.out.println(splitInEqualIntervals(start, end, equalParts));
19+
20+
}
21+
22+
public static List<LocalDateTime> splitInEqualIntervals(
23+
LocalDateTime start, LocalDateTime end, int n) {
24+
25+
Duration range = Duration.between(start, end);
26+
Duration interval = range.dividedBy(n - 1);
27+
List<LocalDateTime> listOfDates = new ArrayList<>();
28+
LocalDateTime timeline = start;
29+
for (int i = 0; i < n - 1; i++) {
30+
listOfDates.add(timeline);
31+
timeline = timeline.plus(interval);
32+
}
33+
listOfDates.add(end);
34+
return listOfDates;
35+
}
36+
}
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
package com.howtodoinjava.core.datetime;
2+
3+
import java.time.Duration;
4+
import java.time.Instant;
5+
import java.util.concurrent.TimeUnit;
6+
import org.apache.commons.lang3.time.StopWatch;
7+
8+
public class StopWatchExamples {
9+
10+
public static void main(String[] args) throws InterruptedException {
11+
12+
// 1- Custom Stopwatch
13+
14+
Stopwatch stopwatch = new Stopwatch();
15+
stopwatch.start();
16+
Thread.sleep(2000L);
17+
stopwatch.stop();
18+
System.out.println(STR."Elapsed Time : \{stopwatch.getElapsedTime()}");
19+
System.out.println(STR."Elapsed Time : \{stopwatch.getElapsedTime(TimeUnit.NANOSECONDS)}");
20+
21+
// 2 - Apache Commons
22+
23+
StopWatch stopWatch = new StopWatch();
24+
stopWatch.start();
25+
Thread.sleep(2000L);
26+
stopWatch.stop();
27+
System.out.println(STR."Elapsed Time : \{stopWatch.getTime()}");
28+
System.out.println(STR."Elapsed Time in Nano: \{stopWatch.getTime(TimeUnit.NANOSECONDS)}");
29+
}
30+
31+
// elapsed time in milliseconds
32+
public long elapsedTimeToMillis(long nanotime) {
33+
34+
return TimeUnit.MILLISECONDS.convert(
35+
nanotime, TimeUnit.NANOSECONDS);
36+
}
37+
38+
// elapsed time in seconds
39+
public long elapsedTimeToSeconds(long nanotime) {
40+
41+
return TimeUnit.SECONDS.convert(
42+
nanotime, TimeUnit.NANOSECONDS);
43+
}
44+
}
45+
46+
final class Stopwatch {
47+
48+
private Instant startTime;
49+
private Instant endTime;
50+
private boolean running;
51+
52+
public void start() {
53+
if (!running) {
54+
startTime = Instant.now();
55+
running = true;
56+
} else {
57+
System.out.println("Stopwatch is already running. Use stop() before starting again.");
58+
}
59+
}
60+
61+
public void stop() {
62+
if (running) {
63+
endTime = Instant.now();
64+
running = false;
65+
} else {
66+
System.out.println("Stopwatch is not running. Use start() before stopping.");
67+
}
68+
}
69+
70+
public Duration getElapsedDuration() {
71+
if (running) {
72+
return Duration.between(startTime, Instant.now());
73+
} else {
74+
return Duration.between(startTime, endTime);
75+
}
76+
}
77+
78+
public long getElapsedTime() {
79+
Duration duration = getElapsedDuration();
80+
return duration.toMillis();
81+
}
82+
83+
public long getElapsedTime(TimeUnit timeUnit) {
84+
return timeUnit.convert(getElapsedTime(), TimeUnit.MILLISECONDS);
85+
}
86+
}

0 commit comments

Comments
 (0)