Skip to content

Commit 70e1fc0

Browse files
committed
Add Kotlin code
1 parent 95adef8 commit 70e1fc0

File tree

1 file changed

+299
-0
lines changed

1 file changed

+299
-0
lines changed

datetime.kt

Lines changed: 299 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,299 @@
1+
import java.time.*
2+
import java.time.format.DateTimeFormatter
3+
import java.util.*
4+
5+
object datetime {
6+
@JvmStatic
7+
fun main(args: Array<String>) {
8+
Scanner(System.`in`).use { sc ->
9+
val year: Int
10+
val month: Int
11+
val day: Int
12+
val hour: Int
13+
val minute: Int
14+
val second: Int
15+
val millisecond: Int
16+
val microsecond: Int
17+
val nanosecond: Int //initialize date and time variables
18+
val era1 =
19+
DateTimeFormatter.ofPattern("GGG") // Format the date and time values with a specified pattern for all supported formats
20+
val era2 = DateTimeFormatter.ofPattern("GGGG")
21+
val era3 = DateTimeFormatter.ofPattern("GGGGG")
22+
val year1 = DateTimeFormatter.ofPattern("uu")
23+
val year2 = DateTimeFormatter.ofPattern("uuuu")
24+
val yearEra = DateTimeFormatter.ofPattern("yy")
25+
val yearEra2 = DateTimeFormatter.ofPattern("yyyy")
26+
val dayOfYear = DateTimeFormatter.ofPattern("D")
27+
val monthOfYear = DateTimeFormatter.ofPattern("M")
28+
val monthOfYear2 = DateTimeFormatter.ofPattern("MMM")
29+
val monthOfYear3 = DateTimeFormatter.ofPattern("MMMM")
30+
val monthOfYear4 = DateTimeFormatter.ofPattern("MMMMM")
31+
val dayOfMonth = DateTimeFormatter.ofPattern("d")
32+
val quarter = DateTimeFormatter.ofPattern("q")
33+
val quarter2 = DateTimeFormatter.ofPattern("qqq")
34+
val quarter3 = DateTimeFormatter.ofPattern("qqqq")
35+
val weekBasedYear = DateTimeFormatter.ofPattern("YY")
36+
val weekBasedYear2 = DateTimeFormatter.ofPattern("YYYY")
37+
val weekOfYear = DateTimeFormatter.ofPattern("w")
38+
val weekOfMonth = DateTimeFormatter.ofPattern("W")
39+
val dayOfWeek = DateTimeFormatter.ofPattern("E")
40+
val dayOfWeek2 = DateTimeFormatter.ofPattern("EEEE")
41+
val dayOfWeek3 = DateTimeFormatter.ofPattern("EEEEE")
42+
val localDayOfWeek = DateTimeFormatter.ofPattern("e")
43+
val localDayOfWeek2 = DateTimeFormatter.ofPattern("eee")
44+
val localDayOfWeek3 = DateTimeFormatter.ofPattern("eeee")
45+
val localDayOfWeek4 = DateTimeFormatter.ofPattern("eeeee")
46+
val localWeekOfMonth = DateTimeFormatter.ofPattern("F")
47+
val amPm = DateTimeFormatter.ofPattern("a")
48+
val hour12 = DateTimeFormatter.ofPattern("h")
49+
val hour0To11 = DateTimeFormatter.ofPattern("K")
50+
val hour24 = DateTimeFormatter.ofPattern("k")
51+
val hourOfDay = DateTimeFormatter.ofPattern("H")
52+
val minute1 = DateTimeFormatter.ofPattern("m")
53+
val second1 = DateTimeFormatter.ofPattern("s")
54+
val fractionOfSecond = DateTimeFormatter.ofPattern("SSSSSSSSS")
55+
val millisecondOfDay = DateTimeFormatter.ofPattern("A")
56+
val nanosecondOfSecond = DateTimeFormatter.ofPattern("n")
57+
val nanosecondOfDay = DateTimeFormatter.ofPattern("N")
58+
val timezoneId = DateTimeFormatter.ofPattern("VV")
59+
val timezoneName = DateTimeFormatter.ofPattern("z")
60+
val timezoneName2 = DateTimeFormatter.ofPattern("zzzz")
61+
val timezoneOffset = DateTimeFormatter.ofPattern("OOOO")
62+
val timezoneOffsetZ = DateTimeFormatter.ofPattern("XXXXX")
63+
val timezoneOffsetX = DateTimeFormatter.ofPattern("xxxxx")
64+
val timezoneOffset2 = DateTimeFormatter.ofPattern("ZZZZZ")
65+
val timezoneOffsetZ1 = DateTimeFormatter.ofPattern("ZZZZ")
66+
67+
try { //make sure date and time input is a valid integer
68+
print("Year: ")
69+
year = sc.nextInt()
70+
print("Month: ")
71+
month = sc.nextInt() // 1 is January
72+
print("Day: ")
73+
day = sc.nextInt()
74+
print("Hour: ")
75+
hour = sc.nextInt()
76+
print("Minute: ")
77+
minute = sc.nextInt()
78+
print("Second: ")
79+
second = sc.nextInt()
80+
print("Millisecond: ")
81+
millisecond = sc.nextInt()
82+
print("Microsecond: ")
83+
microsecond = sc.nextInt()
84+
print("Nanosecond: ")
85+
nanosecond = sc.nextInt()
86+
val enteredDateAndTime = LocalDateTime.of(year, month, day, hour, minute, second)
87+
.withNano(millisecond * 1000000 + microsecond * 1000 + nanosecond) // Convert datetime of GregorianCalendar object to LocalDateTime object named enteredDateAndTime without a time zone and set nanoseconds to 1,000,000 (1 million) * milliseconds + 1,000 (1 thousand) * microseconds + nanoseconds
88+
val enteredDateAndTimeTimezone = ZonedDateTime.of(
89+
enteredDateAndTime,
90+
ZoneId.systemDefault()
91+
) // Get time zone of entered date and time values
92+
// Print the entered date and time values in all supported formats
93+
println("\nEntered Date and Time Values:\n")
94+
println(
95+
"Era: " + era1.format(enteredDateAndTime) + " (" + era2.format(enteredDateAndTime) + ")" + " (" + era3.format(
96+
enteredDateAndTime
97+
) + ")"
98+
) // Print the date and time values with formatted date and time pattern
99+
println("Year: " + year1.format(enteredDateAndTime) + " (" + year2.format(enteredDateAndTime) + ")")
100+
println("Era Year: " + yearEra.format(enteredDateAndTime) + " (" + yearEra2.format(enteredDateAndTime) + ")")
101+
println("Day of Year: " + dayOfYear.format(enteredDateAndTime))
102+
println(
103+
"Month of Year: " + monthOfYear.format(enteredDateAndTime) + " (" + monthOfYear2.format(
104+
enteredDateAndTime
105+
) + ")" + " (" + monthOfYear3.format(enteredDateAndTime) + ")" + " (" + monthOfYear4.format(
106+
enteredDateAndTime
107+
) + ")"
108+
)
109+
println("Day of Month: " + dayOfMonth.format(enteredDateAndTime))
110+
println(
111+
"Quarter: " + quarter.format(enteredDateAndTime) + " (" + quarter2.format(enteredDateAndTime) + ")" + " (" + quarter3.format(
112+
enteredDateAndTime
113+
) + ")"
114+
)
115+
println(
116+
"ISO Week-based Year: " + weekBasedYear.format(enteredDateAndTime) + " (" + weekBasedYear2.format(
117+
enteredDateAndTime
118+
) + ")"
119+
)
120+
println("Week of Year: " + weekOfYear.format(enteredDateAndTime))
121+
println("Week of Month: " + weekOfMonth.format(enteredDateAndTime))
122+
println(
123+
"Day of Week: " + dayOfWeek.format(enteredDateAndTime) + " (" + dayOfWeek2.format(
124+
enteredDateAndTime
125+
) + ")" + " (" + dayOfWeek3.format(enteredDateAndTime) + ")"
126+
)
127+
println(
128+
"Local Day of Week: " + localDayOfWeek.format(enteredDateAndTime) + " (" + localDayOfWeek2.format(
129+
enteredDateAndTime
130+
) + ")" + " (" + localDayOfWeek3.format(enteredDateAndTime) + ")" + " (" + localDayOfWeek4.format(
131+
enteredDateAndTime
132+
) + ")"
133+
)
134+
println("Local Week of Month: " + localWeekOfMonth.format(enteredDateAndTime))
135+
println("AM/PM: " + amPm.format(enteredDateAndTime))
136+
println("12 Hour Format " + hour12.format(enteredDateAndTime))
137+
println("0-11 Hour Format: " + hour0To11.format(enteredDateAndTime))
138+
println("24 Hour Format: " + hour24.format(enteredDateAndTime))
139+
println("Hour of Day: " + hourOfDay.format(enteredDateAndTime))
140+
println("Minute: " + minute1.format(enteredDateAndTime))
141+
println("Second: " + second1.format(enteredDateAndTime))
142+
println("Fraction of Second: " + fractionOfSecond.format(enteredDateAndTime))
143+
println("Millisecond of Day: " + millisecondOfDay.format(enteredDateAndTime))
144+
println("Nanosecond: " + nanosecondOfSecond.format(enteredDateAndTime))
145+
println("Nanosecond of Day: " + nanosecondOfDay.format(enteredDateAndTime))
146+
println("Time Zone ID: " + timezoneId.format(enteredDateAndTimeTimezone))
147+
println(
148+
"Time Zone: " + timezoneName2.format(enteredDateAndTimeTimezone) + " (" + timezoneName.format(
149+
enteredDateAndTimeTimezone
150+
) + ")"
151+
)
152+
println(
153+
"Localized Time Zone Offset: " + timezoneOffset.format(enteredDateAndTimeTimezone) + " (" + timezoneOffset2.format(
154+
enteredDateAndTimeTimezone
155+
) + ")"
156+
)
157+
println(
158+
"Time Zone Offset: " + timezoneOffsetZ.format(enteredDateAndTimeTimezone) + " (" + timezoneOffsetX.format(
159+
enteredDateAndTimeTimezone
160+
) + ")" + " (" + timezoneOffsetZ1.format(enteredDateAndTimeTimezone) + ")"
161+
)
162+
println("\nCurrent Date and Time Values:\n")
163+
} catch (ex: InputMismatchException) { //if entered, date and time values are in the wrong format (not a valid integer)
164+
println("\nInvalid date and time input.\nPrinting current date and time.\n") //print the error
165+
}
166+
167+
// Print the current date and time values in all supported formats
168+
val dateAndTimeNow =
169+
ZonedDateTime.now() // Get the current date and time based on local computer date and time with local time zone
170+
println(
171+
"Current Era: " + era1.format(dateAndTimeNow) + " (" + era2.format(dateAndTimeNow) + ")" + " (" + era3.format(
172+
dateAndTimeNow
173+
) + ")"
174+
) // Print the formatted date and time values in current local date and time
175+
println("Current Year: " + year1.format(dateAndTimeNow) + " (" + year2.format(dateAndTimeNow) + ")")
176+
println("Current Era Year: " + yearEra.format(dateAndTimeNow) + " (" + yearEra2.format(dateAndTimeNow) + ")")
177+
println("Current Day of Year: " + dayOfYear.format(dateAndTimeNow))
178+
println(
179+
"Current Month of Year: " + monthOfYear.format(dateAndTimeNow) + " (" + monthOfYear2.format(
180+
dateAndTimeNow
181+
) + ")" + " (" + monthOfYear3.format(dateAndTimeNow) + ")" + " (" + monthOfYear4.format(dateAndTimeNow) + ")"
182+
)
183+
println("Current Day of Month: " + dayOfMonth.format(dateAndTimeNow))
184+
println(
185+
"Current Quarter: " + quarter.format(dateAndTimeNow) + " (" + quarter2.format(dateAndTimeNow) + ")" + " (" + quarter3.format(
186+
dateAndTimeNow
187+
) + ")"
188+
)
189+
println(
190+
"Current ISO Week-based Year: " + weekBasedYear.format(dateAndTimeNow) + " (" + weekBasedYear2.format(
191+
dateAndTimeNow
192+
) + ")"
193+
)
194+
println("Current Week of Year: " + weekOfYear.format(dateAndTimeNow))
195+
println("Current Week of Month: " + weekOfMonth.format(dateAndTimeNow))
196+
println(
197+
"Current Day of Week: " + dayOfWeek.format(dateAndTimeNow) + " (" + dayOfWeek2.format(dateAndTimeNow) + ")" + " (" + dayOfWeek3.format(
198+
dateAndTimeNow
199+
) + ")"
200+
)
201+
println(
202+
"Current Local Day of Week: " + localDayOfWeek.format(dateAndTimeNow) + " (" + localDayOfWeek2.format(
203+
dateAndTimeNow
204+
) + ")" + " (" + localDayOfWeek3.format(dateAndTimeNow) + ")" + " (" + localDayOfWeek4.format(
205+
dateAndTimeNow
206+
) + ")"
207+
)
208+
println("Current Local Week of Month: " + localWeekOfMonth.format(dateAndTimeNow))
209+
println("Current AM/PM: " + amPm.format(dateAndTimeNow))
210+
println("Current 12 Hour Format " + hour12.format(dateAndTimeNow))
211+
println("Current 0-11 Hour Format: " + hour0To11.format(dateAndTimeNow))
212+
println("Current 24 Hour Format: " + hour24.format(dateAndTimeNow))
213+
println("Current Hour of Day: " + hourOfDay.format(dateAndTimeNow))
214+
println("Current Minute: " + minute1.format(dateAndTimeNow))
215+
println("Current Second: " + second1.format(dateAndTimeNow))
216+
println("Current Fraction of Second: " + fractionOfSecond.format(dateAndTimeNow))
217+
println("Current Millisecond of Day: " + millisecondOfDay.format(dateAndTimeNow))
218+
println("Current Nanosecond: " + nanosecondOfSecond.format(dateAndTimeNow))
219+
println("Current Nanosecond of Day: " + nanosecondOfDay.format(dateAndTimeNow))
220+
println("Current Time Zone ID: " + timezoneId.format(dateAndTimeNow))
221+
println(
222+
"Current Time Zone: " + timezoneName2.format(dateAndTimeNow) + " (" + timezoneName.format(
223+
dateAndTimeNow
224+
) + ")"
225+
)
226+
println(
227+
"Current Localized Time Zone Offset: " + timezoneOffset.format(dateAndTimeNow) + " (" + timezoneOffset2.format(
228+
dateAndTimeNow
229+
) + ")"
230+
)
231+
println(
232+
"Current Time Zone Offset: " + timezoneOffsetZ.format(dateAndTimeNow) + " (" + timezoneOffsetX.format(
233+
dateAndTimeNow
234+
) + ")" + " (" + timezoneOffsetZ1.format(dateAndTimeNow) + ")"
235+
)
236+
val currentUtcDateAndTime = Instant.now() // Get the current UTC date and time using an Instant object
237+
val utcDateAndTimeNow = LocalDateTime.ofInstant(
238+
currentUtcDateAndTime,
239+
ZoneOffset.UTC
240+
) // Convert from an Instant object to LocalDateTime object
241+
println(
242+
"Current UTC Era: " + era1.format(utcDateAndTimeNow) + " (" + era2.format(utcDateAndTimeNow) + ")" + " (" + era3.format(
243+
utcDateAndTimeNow
244+
) + ")"
245+
) // Print the formatted date and time values in current local date and time
246+
println("Current UTC Year: " + year1.format(utcDateAndTimeNow) + " (" + year2.format(utcDateAndTimeNow) + ")")
247+
println(
248+
"Current UTC Era Year: " + yearEra.format(utcDateAndTimeNow) + " (" + yearEra2.format(
249+
utcDateAndTimeNow
250+
) + ")"
251+
)
252+
println("Current UTC Day of Year: " + dayOfYear.format(utcDateAndTimeNow))
253+
println(
254+
"Current UTC Month of Year: " + monthOfYear.format(utcDateAndTimeNow) + " (" + monthOfYear2.format(
255+
utcDateAndTimeNow
256+
) + ")" + " (" + monthOfYear3.format(utcDateAndTimeNow) + ")" + " (" + monthOfYear4.format(
257+
utcDateAndTimeNow
258+
) + ")"
259+
)
260+
println("Current UTC Day of Month: " + dayOfMonth.format(utcDateAndTimeNow))
261+
println(
262+
"Current UTC Quarter: " + quarter.format(utcDateAndTimeNow) + " (" + quarter2.format(
263+
utcDateAndTimeNow
264+
) + ")" + " (" + quarter3.format(utcDateAndTimeNow) + ")"
265+
)
266+
println(
267+
"Current UTC ISO Week-based Year: " + weekBasedYear.format(utcDateAndTimeNow) + " (" + weekBasedYear2.format(
268+
utcDateAndTimeNow
269+
) + ")"
270+
)
271+
println("Current UTC Week of Year: " + weekOfYear.format(utcDateAndTimeNow))
272+
println("Current UTC Week of Month: " + weekOfMonth.format(utcDateAndTimeNow))
273+
println(
274+
"Current UTC Day of Week: " + dayOfWeek.format(utcDateAndTimeNow) + " (" + dayOfWeek2.format(
275+
utcDateAndTimeNow
276+
) + ")" + " (" + dayOfWeek3.format(utcDateAndTimeNow) + ")"
277+
)
278+
println(
279+
"Current UTC Local Day of Week: " + localDayOfWeek.format(utcDateAndTimeNow) + " (" + localDayOfWeek2.format(
280+
utcDateAndTimeNow
281+
) + ")" + " (" + localDayOfWeek3.format(utcDateAndTimeNow) + ")" + " (" + localDayOfWeek4.format(
282+
utcDateAndTimeNow
283+
) + ")"
284+
)
285+
println("Current UTC Local Week of Month: " + localWeekOfMonth.format(utcDateAndTimeNow))
286+
println("Current UTC AM/PM: " + amPm.format(utcDateAndTimeNow))
287+
println("Current UTC 12 Hour Format " + hour12.format(utcDateAndTimeNow))
288+
println("Current UTC 0-11 Hour Format: " + hour0To11.format(utcDateAndTimeNow))
289+
println("Current UTC 24 Hour Format: " + hour24.format(utcDateAndTimeNow))
290+
println("Current UTC Hour of Day: " + hourOfDay.format(utcDateAndTimeNow))
291+
println("Current UTC Minute: " + minute1.format(utcDateAndTimeNow))
292+
println("Current UTC Second: " + second1.format(utcDateAndTimeNow))
293+
println("Current UTC Fraction of Second: " + fractionOfSecond.format(utcDateAndTimeNow))
294+
println("Current UTC Millisecond of Day: " + millisecondOfDay.format(utcDateAndTimeNow))
295+
println("Current UTC Nanosecond: " + nanosecondOfSecond.format(utcDateAndTimeNow))
296+
println("Current UTC Nanosecond of Day: " + nanosecondOfDay.format(utcDateAndTimeNow))
297+
}
298+
}
299+
}

0 commit comments

Comments
 (0)