Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //************* Evaporate.java
- package mainpkg;
- public class Evaporate {
- public static void main(String[] args) {
- new StatusGenerator(2565, 3535, 20).generateAndPrint();
- }
- }
- // ***************** StatusGenerator.java
- package mainpkg;
- import java.io.FileNotFoundException;
- import java.io.PrintWriter;
- import java.io.UnsupportedEncodingException;
- import java.util.Random;
- public class StatusGenerator {
- private int minWeight;
- private int maxWeight;
- private int alertPercentage;
- private int weightRange;
- private int itemsToGenerate = 2160; // 90 days x 24 hours
- private int weekdayDelta = 20;
- private int weekendDelta = 5;
- private PrintWriter writer;
- public StatusGenerator(int minWeight, int maxWeight, int alertPercentage) {
- this.minWeight = minWeight;
- this.maxWeight = maxWeight;
- this.weightRange = maxWeight - minWeight;
- this.alertPercentage = alertPercentage;
- }
- public void generateAndPrint() {
- try {
- writer = new PrintWriter("C:\\UTN\\gas.txt", "UTF-8"); //FIXME ojo que esto está hardcodeado
- } catch (FileNotFoundException | UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- int currentValue = this.generateInitialValue();
- for (int rows = 0; rows < itemsToGenerate; rows++) {
- doPrint(currentValue);
- boolean isWeekend = rows % 168 < 120;
- currentValue = currentValue - new Random().nextInt(isWeekend ? weekendDelta : weekdayDelta) - 1;
- if (this.shouldRecharge(currentValue)) {
- currentValue = maxWeight;
- }
- }
- writer.close();
- }
- private boolean shouldRecharge(int currentValue) {
- if (currentValue <= minWeight + weekdayDelta) return true;
- if (isLow(currentValue) && new Random().nextInt(50) == 1) return true;
- return false;
- }
- private boolean isLow(int currentValue) {
- return currentValue - minWeight < weightRange * alertPercentage / 100;
- }
- private int generateInitialValue() {
- return new Random().nextInt(weightRange) + minWeight;
- }
- private void doPrint(int value) {
- writer.print(value + "\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment