- 1
- 2
- 3
- 4
public static int daysBetween(Date startDate, Date endDate)
{
int difInDays = (int) ((endDate.getTime() - startDate.getTime())/(1000*60*60*24));
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−55.8
public static int daysBetween(Date startDate, Date endDate)
{
int difInDays = (int) ((endDate.getTime() - startDate.getTime())/(1000*60*60*24));
}
Потрясающая воображение функция, которая считает разницу в днях между датами. Различие с правильным результатом в +\- 1 день получается в 30% случаев...
+18.5
if (true) {
// Something
}
Уже два года, как девушка закончила универ...
+27
private int checkTerm(PatternTerm term, int arr[],
int symbNum, boolean isEditing) {
if (term.count != INFINITY) {
int endIdx = Math.min(symbNum + term.count, arr.length);
int count = 0;
switch(term.termType) {
case DIGIT: {
for(int i = symbNum; i < endIdx; i++) {
if (!Character.isDigit((char)arr[i]))
return -1;
count++;
}
break;
}
case LETTER: {
for(int i = symbNum; i < endIdx; i++) {
if (!Character.isLetter((char)arr[i]))
return -1;
count++;
}
break;
}
case LETTERORDIGIT: {
for(int i = symbNum; i < endIdx; i++) {
if (!Character.isLetterOrDigit((char)arr[i]))
return -1;
count++;
}
break;
}
case CHARACTER: {
for(int i = symbNum; i < endIdx; i++) {
if (arr[i] != term.value)
return -1;
count++;
}
break;
}
}
if (!isEditing && count != term.count)
return -1;
symbNum+=term.count;
} else {
int i = 0;
switch(term.termType) {
case DIGIT: {
while (((symbNum + i) < arr.length) &&
Character.isDigit((char)arr[symbNum + i])) i++;
break;
}
case LETTER: {
while (((symbNum + i) < arr.length) &&
Character.isLetter((char)arr[symbNum + i])) i++;
break;
}
case LETTERORDIGIT: {
while (((symbNum + i) < arr.length) &&
Character.isLetterOrDigit((char)arr[symbNum + i])) i++;
break;
}
case CHARACTER: {
while (((symbNum + i) < arr.length) &&
(arr[symbNum + i] == term.value)) i++;
break;
}
}
symbNum+=i;
}
return symbNum;
}
Паша любит такие конструкции, которые хрен разобрать
−50
contents = contents.replaceAll("\\<(\\w+)\\>", "<CT_$1>\n");
contents = contents.replaceAll("\\<(\\w+)(\\s\\w+)=\\"(\\w+)\\"\\>", "<CT_$1$2=\"$3\">\n");
contents = contents.replaceAll("\\<(\\w+)(\\s\\w+)=\\'(\\w+)\\'\\>", "<CT_$1$2='$3'>\n");
contents = contents.replaceAll("\\</(\\w+)\\>", "\n</CT_$1>\n");
преобразуем эскейпнутые тэги в обычные
−32.7
public void updateAmountValues(List<TransactionResultItem> transactionResultItems) {
for (TransactionResultItem transaction : transactionResultItems) {
Account account = getAccountById(transaction.getAccountId());
if ((transaction.getMainTransaction()
&& ! transaction.getTransactionTypeId().equals(4)
&& ! transaction.getTransactionTypeId().equals(5)
&& ! transaction.getTransactionTypeId().equals(6))
||
(! transaction.getMainTransaction() &&
(transaction.getTransactionTypeId().equals(5) &&
((account.getAccountTypeId().equals(AccountType.INCOME_TYPE_ID) ||
account.getAccountTypeId().equals(AccountType.OTHER_INCOME_TYPE_ID)) &&
transaction.getAmount() > 0)
|| (transaction.getAccountId().equals(getSalesTaxPayableAccountId()) && transaction.getAmount() > 0)
|| ((account.getAccountTypeId().equals(AccountType.EXPENSE_TYPE_ID) ||
account.getAccountTypeId().equals(AccountType.OTHER_EXPENSE_TYPE_ID)) && transaction.getAmount() < 0))
|| (transaction.getTransactionTypeId().equals(1) &&
(account.getAccountTypeId().equals(AccountType.INCOME_TYPE_ID) ||
account.getAccountTypeId().equals(AccountType.OTHER_INCOME_TYPE_ID)) &&
transaction.getAmount() < 0)
|| (transaction.getTransactionTypeId().equals(2) &&
(account.getAccountTypeId().equals(AccountType.INCOME_TYPE_ID) ||
account.getAccountTypeId().equals(AccountType.OTHER_INCOME_TYPE_ID)) &&
transaction.getAmount() > 0)
)) {
Double amount = transaction.getAmount();
transaction.setAmount(-amount);
}
}
}
Потрясающий по понятности код. Вызывался несколько раз в одном и том же методе.
−53.2
/**
* Reply string array after tokenize the url address
*
* @param String url
* @return String[]
*/
protected String[] processURL(String url) {
StringBuffer s = new StringBuffer(url);
StringBuffer AfterRemoval = s.delete(0, 27);
...
...в тот день магическим числом для паренька из Индии было число 27... похоже он и сам не понимал почему.. возможно это как то было связано с именем хоста...
−43.8
private Map<Class<?>, Map<String, String[]>> compressDependencies(
Map<Class<?>, Map<String, List<String>>> dependencies) {
final Map<Class<?>, Map<String, String[]>> result =
new FastMap<Class<?>, Map<String, String[]>>(dependencies.size());
final Set<Entry<Class<?>, Map<String, List<String>>>> entrySet = dependencies.entrySet();
for (Entry<Class<?>, Map<String, List<String>>> entry : entrySet) {
final Map<String, List<String>> value = entry.getValue();
final Map<String, String[]> desc = new FastMap<String, String[]>(value.size());
final Set<Entry<String, List<String>>> subEntries = value.entrySet();
for (Entry<String, List<String>> valueEntry : subEntries) {
final List<String> list = valueEntry.getValue();
if (list != null && !list.isEmpty()) {
desc.put(valueEntry.getKey(), list.toArray(new String[list.size()]));
}
}
result.put(entry.getKey(), desc);
}
return result;
}
Код от "мега разработчика", архитектора очень большого проекта.
PS Будьте осторожны в использовании java generics :)
+24
/**
* Getter for billbackAdjustmentType
*
* @return the billbackAdjustmentType instance
*/
public BillbackAdjustmentType getBillbackAdjustmentType() {
return billbackAdjustmentType != null ? billbackAdjustmentType : BillbackAdjustmentType.PlusBillbackAdjustment;
}
...и попробуй такое найди под дебагом :)
−11.2
public static Date createDate(Integer iYear, Integer iMonth, Integer iDay) throws Exception
{
if ((!(iYear instanceof Integer))
|| (!(iMonth instanceof Integer))
|| (!(iDay instanceof Integer))
)
{
throw new Exception();
}
Date date = null;
String year, month, day;
year = iYear.toString();
month = iMonth.toString();
day = iDay.toString();
try
{
date = new SimpleDateFormat("yyyy/MM/dd").parse(year + "/" + month + "/" + day);
} catch (ParseException e)
{
log.warn("Date transformation failed for year, month, day: " + iYear + ", " + iMonth + ", " + iDay);
}
return date;
}
Индусы Рулят!!!
−34.2
public boolean foo(...){
...
try{
...
}
finally{
if(expr_1){
return false;
}
if(expr_2){
return false;
}
...
if(expr_n){
return false;
}
}
...
return true;
}
поймал на сопровождении, долго курил (метод на 3 экранах)