Olá …
Estou precisando resolver um problema aqui na empresa de previsão de execução de uma aplicação. Nessa aplicação eu passo como parâmetro a capacidade de execução da(s) maquina(s) e a carga de trabalho. O tempo que uma certa máquina de capacidade C leva para processar uma tarefa com carga W é W/C, entao temos T = W/C.
Ex: Capacidade 100 e carga 1234
T=1234/100 = 12,34
Agora para dar uma previsão de execução se baseando nesses dados, preciso pegar a data atual data+hora e adicionar essa unidade de tempo T. Não estou conseguindo fazer, alguém teria alguma sugestão?
PS: Como eu disse é para uma solução aqui na empresa e não trabalho escolar.
[]'s
[quote=spiderman]Olá …
Estou precisando resolver um problema aqui na empresa de previsão de execução de uma aplicação. Nessa aplicação eu passo como parâmetro a capacidade de execução da(s) maquina(s) e a carga de trabalho. O tempo que uma certa máquina de capacidade C leva para processar uma tarefa com carga W é W/C, entao temos T = W/C.
Ex: Capacidade 100 e carga 1234
T=1234/100 = 12,34
Agora para dar uma previsão de execução se baseando nesses dados, preciso pegar a data atual data+hora e adicionar essa unidade de tempo T. Não estou conseguindo fazer, alguém teria alguma sugestão?
PS: Como eu disse é para uma solução aqui na empresa e não trabalho escolar.
[]'s[/quote]
Se entendi seu problema, vc está querendo expressar o fator T em tempo real. Se for realmente isso, vc precisa apenas encontrar quanto em segundos ou minutos T=1 representa. Supondo que T = 1 represente 1m = 60s, um T = 12,34 em segundos seriam 12,34 * 60 = 740,4s.
Pra prever entao, a hora de término de uma execução de T = 12,34 bastaria fazer um método que recebe a hora de inicio e o T e adicionar a essa hora de inicio os segundos ou minutos representados pelo T.
Em java ficaria mais ou menos assim:
import java.util.Calendar;
public class CalculaHoras {
/**
* @param args
*/
public static final int FATOR_EM_TEMPO_REAL_SEGUNDOS = 1;
public static void main(String[] args) {
int carga = 1000000;
int capacidade = 10;
int fator = calculaFatorT(carga, capacidade);
System.out.println(">>FATOR T = " + fator);
//vamos supor que a tarefa inicie agora
Calendar inicio = Calendar.getInstance();
System.out.println(">>INICIO: "+ inicio.getTime());
Calendar fim = calculaTempo(inicio, fator);
System.out.println(">>FIM: " + fim.getTime());
}
/**
*
* @param carga
* @param capacidade
* @return Fator T = (carga / capacidade)
*/
private static int calculaFatorT (int carga, int capacidade) {
return (Integer) carga/capacidade;
}
/**
*
* @param inicio
* @param fator
* @return Calendar representando a previsao de término da tarefa dada o inicio e o fator T supondo que
* 1T = 1s em tempo real.
*
*/
private static Calendar calculaTempo(Calendar inicio, int fator) {
inicio.add(Calendar.SECOND, Integer.valueOf(fator * FATOR_EM_TEMPO_REAL_SEGUNDOS ));
return inicio;
}
}