Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
TimeSpan имеет свойство Int64 Ticks, которое можно сохранить вместо этого, и конструктор, который принимает значение Галочек.
Большинство баз данных имеет своего рода тип временного интервала. Ответ зависит, на которой базе данных Вы говорите о. Для Oracle это - просто число с плавающей точкой, которое представляет количество дней (включая дробные дни). Можно добавить/вычесть, что к/от любому типу ДАТЫ и Вы получаете правильный ответ.
В течение многих периодов меньше чем день просто используйте секунды, как другой сказали.
В течение более длительных периодов это зависит от Вашего механизма дб. Если SQL Server, до версии 2008 Вы хотите дату и время. Это хорошо - можно просто проигнорировать значение по умолчанию 01.01.1900 дата, которую они будут все иметь. Если Вам достаточно повезло иметь SQL-сервер 2008, то существуют отдельные типы данных Даты и времени, которые можно использовать. Преимуществом с использованием реального типа даты и времени/времени является использование функции DateDiff для сравнения продолжительностей.
Как целочисленное количество секунд (или Миллисекунды как соответствующие)
Вы собираете обоих время остановки и время начала? Если так, Вы могли использовать тип данных "метки времени", если Ваши поддержки DBMS это. В противном случае так же, как тип даты/времени. Теперь, Вы сказали, что не хотите, чтобы часть даты была сохранена - но рассматриваете случай, где период времени охватывает полночь - Вы запускаете в 23:55:01 и заканчиваетесь в 0:05:14, например - если у Вас также нет даты там. Существует стандартная сборка в функциях для возврата прошедшего времени (в секундах) между двумя значениями даты и времени.
Я думаю, что самое простое должно просто преобразовать ввод данных пользователем в целое число секунд. Так 54:12 == 3 252 секунды, так сохраните 3252 в своей базе данных или везде, где. Затем, когда необходимо отобразить его пользователю, можно преобразовать его назад снова.
и международный тип должен сделать это, храня его как секунды и анализируя его назад и вперед
Пойдите с целыми числами в течение многих секунд или минут. Секунды, вероятно, лучше. Вы никогда не будете ударять себя для выбора чего-то со слишком большой точностью. Кроме того, для Вашего UI рассмотрите использование нескольких вводов текста, которые Вы не должны волновать по поводу пользователя, на самом деле вводящего ":" правильно. Также намного легче добавить другие ограничения, такие как минута и второй подсчет значений, содержащий 0-59.