PDA

Просмотр полной версии : Немного юмора для программистов.


Nnget
17.06.2016, 18:13
Сижу, ковыряю программу с целью найти и уничтожить разные баги.
Кто писал этот код до меня, остается тайной.
И вот, очередной баг:
полученное время с сервера в формате 2012-04-04T00:00:00, надо преобразовать в наш родной формат dd.mm.yyyy.

вроде простая задачка....Но программа настойчиво выдает непонятную дату, иногда причем ставя 00 вместо месяца. После поиска причина найдена.

operationStartDate-наша строчка с датой, которую надо поменять


var date:String = operationStartDate.split("T")[0];
date = date.split("-").join("/");
var d:Date = new Date( date );
operationStartDate = d.day + "." + d.month + "." + d.fullYear;
operationStartDate = parseDate(operationStartDate);


//надо заметить, что эта функция больше нигде не используется, кроме этого места в коде
private function parseDate(s:String):String
{
if ( s.split(".").length > 1 ) {
var d:String = s.split(".")[0];
var m:String = s.split(".")[1];
var y:String = s.split(".")[2];
if ( d.length == 1 ) d = "0" + d;
if ( m.length == 1 ) m = "0" + m;
s = d + "." + m + "." + y;
}
return s;
}

Tails
17.06.2016, 19:51
Ахах, ну да. :)
Нормальные пацаны время передают в формате UNIX.

undefined
17.06.2016, 20:16
не понял юмора.Типа два присвоения к одной и той же переменной? А глючит то почему?

KBAC
17.06.2016, 20:45
undefined, month отдаёт значения в диапазоне 0-11
Ну и видимо юмор ещё в том, что строка собирается и редактируется, вместо того чтобы собрать правильную строку сразу на основе date.

undefined
17.06.2016, 21:00
ну так потом это то все заменяется на свой велосипед parseDate

caseyryan
18.06.2016, 20:14
private function parseDate(date:String):String {
var regExp:RegExp = /(\d+)/gi;
var match:Array = date.match(regExp);
if (match.length < 3) {
throw new ArgumentError("Не верные входные данные!");
}
return match[1] + "." + match[2] + "." + match[0];
}

хз, зачем ты такой г-код развел. И зачем в Date конвертировал, когда дата уже есть

А где смеяться над юмором то? Или имеется в виду, что программист, это такой баран, начисто лишенный нормального чувства юмора?

Bletraut
19.06.2016, 02:24
Так бы "смешнее" было

private function parseDate(s:String):String
{
var a:Array = s.split("-");
if (a.length < 3) {
throw new ArgumentError("Не верные входные данные!");
}
return a[2].split("T")[0] + a[0]+"."+a[1];
}