Преобразование времени — распространенная задача в программировании, и Dart предлагает несколько простых методов преобразования 12-часового времени в 24-часовое без использования внешних пакетов. В этой статье мы рассмотрим несколько подходов к достижению такого преобразования, используя разговорный язык и попутно предоставляя примеры кода. Независимо от того, новичок вы или опытный разработчик Dart, это руководство поможет вам овладеть искусством преобразования времени.
Метод 1: использование условных операторов (if/else)
Один из самых простых способов преобразования 12-часового времени в 24-часовое — использование условных операторов, таких как if/else. Вот пример фрагмента кода:
String convertTo24HourFormat(int hour, int minute, String period) {
if (period.toLowerCase() == 'pm' && hour != 12) {
hour += 12;
} else if (period.toLowerCase() == 'am' && hour == 12) {
hour = 0;
}
String formattedHour = hour.toString().padLeft(2, '0');
String formattedMinute = minute.toString().padLeft(2, '0');
return '$formattedHour:$formattedMinute';
}
void main() {
int hour = 3;
int minute = 30;
String period = 'pm';
String convertedTime = convertTo24HourFormat(hour, minute, period);
print(convertedTime); // Output: 15:30
}
Метод 2: использование класса DateTime
Класс DateTime в Dart предоставляет встроенный способ обработки операций с временем и датой. Мы можем использовать этот класс для преобразования 12-часового времени в 24-часовое. Вот пример:
String convertTo24HourFormat(int hour, int minute, String period) {
DateTime datetime = DateTime(2024, 1, 1, hour, minute);
if (period.toLowerCase() == 'pm') {
datetime = datetime.add(Duration(hours: 12));
}
String formattedTime = '${datetime.hour.toString().padLeft(2, '0')}:${datetime.minute.toString().padLeft(2, '0')}';
return formattedTime;
}
void main() {
int hour = 9;
int minute = 45;
String period = 'am';
String convertedTime = convertTo24HourFormat(hour, minute, period);
print(convertedTime); // Output: 09:45
}
Метод 3: использование манипуляций со строками
Другой подход заключается в непосредственном манипулировании входной строкой для преобразования 12-часового времени в 24-часовое. Вот пример:
String convertTo24HourFormat(String time) {
String period = time.substring(time.length - 2).toLowerCase();
String hourString = time.substring(0, time.indexOf(':'));
int hour = int.parse(hourString);
if (period == 'pm' && hour != 12) {
hour += 12;
} else if (period == 'am' && hour == 12) {
hour = 0;
}
String convertedTime = '$hour:${time.substring(time.indexOf(':') + 1, time.length - 2)}';
return convertedTime;
}
void main() {
String time = '11:20 pm';
String convertedTime = convertTo24HourFormat(time);
print(convertedTime); // Output: 23:20
}
В этой статье мы рассмотрели три различных метода преобразования 12-часового времени в 24-часовое в Dart без использования внешних пакетов. Используя условные операторы, класс DateTime или манипуляции со строками, вы можете легко добиться желаемого преобразования. Не забудьте выбрать метод, который соответствует вашим требованиям и стилю кодирования. Преобразование времени — фундаментальный навык для любого программиста, и, имея в своем распоряжении эти методы, вы будете хорошо подготовлены к выполнению операций, связанных со временем, в ваших приложениях Dart.