/*
* Util.java
* általános célú hasznos függvények, akár a Java részei is lehettek volna
* by pts@fazekas.hu at Sun Apr 22 19:23:53 CEST 2001
* további doksi: a README-ben és e file legkülső class-ának fejkommentjében
*
* Kincskereső Kisgömböc (C) Early May 2001 by eNTitánok (Rév Szilvia,
* Szabó Péter <pts@inf.bme.hu>, Szurdi Miklós, Weizengruber Attila).
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package eNTitanok.util;
import java.util.Vector;
import java.util.Calendar;
/**
* Általános célú, hasznos függvények.
*/
public class Util {
/**
* Az `n' nemnegatív számot adja vissza pontosan `hossz' db hexa számjeggyel.
*/
public static String hexformat(int n, int hossz) {
// Assert: n>=0
// gagyi java, meg egy sprintf()-et se tud, es a stringkezelo fuggvenyei
// teljesen hasznalhatatlanok, lassuak, nehezkesek.
String s=Integer.toHexString(n);
int l=s.length();
return l>=hossz ? s : ("00000000"+s).substring(8+l-hossz,8+l);
}
/**
* Az `n' nemnegatív számot adja vissza pontosan `hossz' db decimális
* számjeggyel.
*/
public static String decformat(int n, int hossz) {
// Assert: n>=0
// gagyi java, meg egy sprintf()-et se tud, es a stringkezelo fuggvenyei
// teljesen hasznalhatatlanok, lassuak, nehezkesek.
String s=Integer.toString(n);
int l=s.length();
return l>=hossz ? s : ("00000000000000"+s).substring(14+l-hossz,14+l);
}
/**
* A String-ben található egész számokat egy tömbbe fűzi.
*/
public static int[] szamokInt(String s) {
int i, j;
char c;
Vector v=new Vector();
for (i=0;i<s.length();i=j) {
while (i<s.length() && (c=s.charAt(i))!='-' && (c<'0' || c>'9')) i++;
if (i==s.length()) break;
j=i+1;
while (j<s.length() && (c=s.charAt(j))>='0' && c<='9') j++;
v.addElement(new Integer(Integer.parseInt(s.substring(i,j))));
}
int[] t=new int[v.size()];
for (i=t.length-1;i>=0;i--) t[i]=((Integer)v.elementAt(i)).intValue();
return t;
}
/**
* A String-ben található egész számokat egy tömbbe fűzi.
*/
public static long[] szamokLong(String s) {
int i, j;
char c;
Vector v=new Vector();
for (i=0;i<s.length();i=j) {
i=0;
while (i<s.length() && (c=s.charAt(i))!='-' && (c<'0' || c>'9')) i++;
if (i==s.length()) break;
j=i+1;
while (j<s.length() && (c=s.charAt(j))>='0' && c<='9') j++;
v.addElement(new Long(Long.parseLong(s.substring(i,j))));
}
long[] t=new long[v.size()];
for (i=t.length-1;i>=0;i--) t[i]=((Long)v.elementAt(i)).longValue();
return t;
}
/**
* Pontosan akkor `true', ha a tömb csupa nemnagatív értékekből áll, melyek
* összege pozitív.
*/
public static boolean eloszlasp(int t[]) {
int osszeg=0;
for (int i=t.length-1;i>=0;i--) {
if (t[i]<0) return false;
osszeg+=t[i];
}
return osszeg>0;
}
/**
* Pontosan akkor `true', ha a tömb csupa nemnagatív értékekből áll, melyek
* összege pozitív, és a tömb `n' elemű.
*/
public static boolean eloszlasp(int t[], int n) {
return t.length==n && eloszlasp(t);
}
/**
* ÉÉÉÉ-HH-NN ÓÓ:PP:MM alakban visszaad egy dátumot.
*/
public static String mysqlDateFormat(Calendar calendar) {
return decformat(calendar.get(Calendar.YEAR),4)+"-"+
decformat(calendar.get(Calendar.MONTH)+1,2)+"-"+
decformat(calendar.get(Calendar.DAY_OF_MONTH),2)+" "+
decformat(calendar.get(Calendar.HOUR_OF_DAY),2)+":"+
decformat(calendar.get(Calendar.MINUTE),2)+":"+
decformat(calendar.get(Calendar.SECOND),2);
}
} /// class Util