/** * ShadBala.java * * Created on May 3, 2003, 5:29 PM * @author E. Rajasekar. */ package app.astrosoft.core; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; import java.util.EnumMap; import java.util.EnumSet; import java.util.GregorianCalendar; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import java.util.TreeSet; import java.util.logging.Logger; import app.astrosoft.beans.BirthData; import app.astrosoft.beans.HousePosition; import app.astrosoft.beans.PlanetaryInfo; import app.astrosoft.beans.HousePosition.Bhava; import app.astrosoft.consts.AstroConsts; import app.astrosoft.consts.AstrosoftTableColumn; import app.astrosoft.consts.Ayanamsa; import app.astrosoft.consts.Paksha; import app.astrosoft.consts.Planet; import app.astrosoft.consts.Rasi; import app.astrosoft.consts.Roman; import app.astrosoft.consts.Varga; import app.astrosoft.consts.Planet.Character; import app.astrosoft.ui.table.DefaultColumnMetaData; import app.astrosoft.ui.table.TableData; import app.astrosoft.ui.table.TableRowData; import app.astrosoft.util.AstroUtil; import app.astrosoft.util.ComparableEntry; import app.astrosoft.util.Mod; import app.astrosoft.util.SwissHelper; import app.astrosoft.util.Utils; import app.astrosoft.export.Exportable; import app.astrosoft.export.Exporter; public class ShadBala implements Exportable { private static final Logger log = Logger.getLogger(ShadBala.class.getName()); private static enum BhavaType { Poorva, Uttra }; public static enum Bala { ResidentialStrength, SthanaBala, OchchaBala, SaptavargajaBala, OjaYugmarasyamsaBala, KendraBala, DrekkanaBala, DigBala, PakshaBala, TribhagaBala, AbdaBala, MasaBala, VaraBala, HoraBala, NatonnataBala, AyanaBala, YuddhaBala, KalaBala, DrikBala, ChestaBala, NaisargikaBala, IshtaBala, KashtaBala, ShadBala, BhavaBala, BhavaAdhipathiBala, BhavaDigBala, BhavaDrishtiBala; public static EnumSet<Bala> planetBalas() { return EnumSet.of(ResidentialStrength, SthanaBala, KalaBala, DigBala, DrikBala, ChestaBala, NaisargikaBala); } public static EnumSet<Bala> bhavaBalas() { return EnumSet.of(BhavaAdhipathiBala, BhavaDigBala, BhavaDrishtiBala); } public static EnumSet<Bala> sthanaBalas() { return EnumSet.of(OchchaBala, SaptavargajaBala, OjaYugmarasyamsaBala, KendraBala, DrekkanaBala); } public static EnumSet<Bala> kalaBalas() { return EnumSet.of(AbdaBala, MasaBala, VaraBala, HoraBala, PakshaBala, TribhagaBala, NatonnataBala, AyanaBala, YuddhaBala); } public static List<AstrosoftTableColumn> toTableColumn( EnumSet<Bala> balas) { List<AstrosoftTableColumn> cols = new ArrayList<AstrosoftTableColumn>(); for (Bala b : balas) { cols.add(AstrosoftTableColumn.valueOf(b.name())); } return cols; } } private BirthData birthData; private double ayanamsa; private double sunrise; private double sunset; private Paksha pak; private int[][] Rel; private int birthDate; private int birthMonth; private int birthYear; private Planet VaraAdipathi; private Calendar birthDay; private long epochDays; private long Ahargana; private boolean birthDayNight; private HousePosition housePosition; private EnumMap<Planet, Double> planetPosition; private EnumMap<Planet, Integer> planetLocation; private EnumMap<Planet, Bhava> planetBhava; private EnumMap<Varga,EnumMap<Planet,Integer>> divChart; private Map<Planet, Boolean> planetCharacter; private EnumMap<Bala, EnumMap<Planet, Double>> PlanetBala; private EnumMap<Bala, ArrayList<Double>> BhavaBala; private EnumMap<Planet, Double> StrengthPer = new EnumMap<Planet, Double>( Planet.class); private EnumMap<Planet, Integer> ShadBalaRank; private ArrayList<Integer> BhavaBalaRank; private TableData<PlanetBalaRow> planetBalaTableData; private DefaultColumnMetaData planetBalaColumnMetaData; private DefaultColumnMetaData sthanaBalaColumnMetaData; private DefaultColumnMetaData kalaBalaColumnMetaData; private TableData<BhavaBalaRow> bhavaBalaTableData; private DefaultColumnMetaData bhavaBalaColumnMetaData; /** * Creates a new instance of ShadBala * * @param paksha */ public ShadBala(PlanetaryInfo planetaryInfo, HousePosition housePosition, BirthData birthData, double ayanamsa, double sunrise, double sunset, Paksha paksha) { if (birthData.year() < 1900){ throw new IllegalArgumentException("WARNING: Year should be less than 1900"); } this.birthData = birthData; this.housePosition = housePosition; this.planetPosition = planetaryInfo.getPlanetPosition(); this.planetLocation = planetaryInfo.getPlanetLocation(); this.planetBhava = planetaryInfo.getPlanetBhava(); this.divChart = planetaryInfo.getDivChart(); this.planetCharacter = planetaryInfo.getPlanetCharacter(); this.ayanamsa = ayanamsa; this.sunrise = sunrise; this.sunset = sunset; this.pak = paksha; birthDay = new GregorianCalendar(); birthDay.setTime(birthData.birthDay().getTime()); if (birthData.birthTime() < sunrise) { birthDay.add(Calendar.DATE, -1); } birthDate = birthDay.get(Calendar.DATE); birthMonth = birthDay.get(Calendar.MONTH) + 1; birthYear = birthDay.get(Calendar.YEAR); if ((birthData.birthTime() > sunrise) && (birthData.birthTime() < sunset)) { birthDayNight = true; } else { birthDayNight = false; } Rel = new int[7][7]; calcBalas(); } private void calcBalas() { PlanetBala = new EnumMap<Bala, EnumMap<Planet, Double>>(Bala.class); double[] MinStrength = {300.0, 360.0, 300.0, 420.0, 390.0, 330.0, 300.0}; PlanetBala.put(Bala.ResidentialStrength, calcResidentialStrength()); PlanetBala.put(Bala.SthanaBala, calcSthanaBala()); calcKalaBala(); PlanetBala.put(Bala.DigBala, calcDigBala()); PlanetBala.put(Bala.DrikBala, calcDrikBala()); PlanetBala.put(Bala.ChestaBala, calcChestabala()); PlanetBala.put(Bala.NaisargikaBala, calcNaisargikaBala()); calcIshtaKashtaBala(); EnumMap<Planet, Double> ShadBala = new EnumMap<Planet, Double>( Planet.class); for (Planet p : Planet.majorPlanets()) { double totalShadBala = PlanetBala.get(Bala.SthanaBala).get(p) + PlanetBala.get(Bala.DigBala).get(p) + PlanetBala.get(Bala.KalaBala).get(p) + PlanetBala.get(Bala.NaisargikaBala).get(p) + PlanetBala.get(Bala.DrikBala).get(p); if (!(p == Planet.Sun || p == Planet.Moon)) { totalShadBala = totalShadBala + PlanetBala.get(Bala.ChestaBala).get(p); } ShadBala.put(p, totalShadBala); } PlanetBala.put(Bala.ShadBala, ShadBala); for (Planet p : Planet.majorPlanets()) { double percent = (ShadBala.get(p) / MinStrength[p.ordinal()]) * 100; StrengthPer.put(p, percent); } calcBhavaBalas(); calcRanks(); } private EnumMap<Planet, Double> calcNaisargikaBala() { EnumMap<Planet, Double> NaisargikaBala = new EnumMap<Planet, Double>( Planet.class); NaisargikaBala.put(Planet.Sun, 60.00); NaisargikaBala.put(Planet.Moon, 51.43); NaisargikaBala.put(Planet.Mars, 17.14); NaisargikaBala.put(Planet.Mercury, 25.70); NaisargikaBala.put(Planet.Jupiter, 34.28); NaisargikaBala.put(Planet.Venus, 42.85); NaisargikaBala.put(Planet.Saturn, 8.57); return NaisargikaBala; } private boolean calcSubaPapa(Planet pl) { boolean res = false; if (pl == Planet.Mercury) { res = true; // Checked for house & not degrees int mercHouse = divChart.get(Varga.Rasi).get(Planet.Mercury); for (Planet p : Planet.allPlanets()) { if (divChart.get(Varga.Rasi).get(p) == mercHouse) { if ((p == Planet.Sun) || (p == Planet.Mars) || (p == Planet.Saturn) || (p == Planet.Rahu) || (p == Planet.Ketu)) { res = false; } } } }else { res = planetCharacter.get(pl); } //System.out.println(pl + " : " + res); return res; } /*private boolean calcSubaPapa(Planet pl) { boolean res = false; Character planetCharacter = pl.character(); if (planetCharacter == Character.PAPA) { res = false; } else if (planetCharacter == Character.SUBA) { res = true; } else { if (pl == Planet.Moon) { res = pak.isShukla(); } else if (pl == Planet.Mercury) { res = true; // Checked for house & not degrees int mercHouse = divChart.get(Varga.Rasi).get(Planet.Mercury); for (Planet p : Planet.allPlanets()) { if (divChart.get(Varga.Rasi).get(p) == mercHouse) { if ((p == Planet.Sun) || (p == Planet.Mars) || (p == Planet.Saturn) || (p == Planet.Rahu) || (p == Planet.Ketu)) { res = false; } // System.out.println("Merc House :" + mercHouse + " - " // + i // + " - " + res) ; } } } } //System.out.println(pl + " : " + res); return res; }*/ private EnumMap<Planet, Double> calcResidentialStrength() { double arc = 0; double length = 0; BhavaType bhavaType; EnumMap<Planet, Double> ResidentialStrength = new EnumMap<Planet, Double>( Planet.class); for (Planet p : Planet.allPlanets()) { bhavaType = poorvaUttraBhava(planetPosition.get(p), planetBhava .get(p)); if (bhavaType == BhavaType.Poorva) { // Poorva Bhava arc = planetPosition.get(p) - planetBhava.get(p).start(); length = planetBhava.get(p).mid() - planetBhava.get(p).start(); } else if (bhavaType == BhavaType.Uttra) { arc = planetBhava.get(p).end() - planetPosition.get(p); length = planetBhava.get(p).end() - planetBhava.get(p).mid(); } else { log.severe("Residential Strength Error, invalid bhava type " + bhavaType); } Mod mod = new Mod(360); arc = mod.correct(arc); length = mod.correct(length); ResidentialStrength.put(p, (arc * 100) / length); } return ResidentialStrength; } private BhavaType poorvaUttraBhava(double pos, Bhava bhava) { BhavaType type = null; if ((pos >= bhava.start()) && (pos <= bhava.mid())) { type = BhavaType.Poorva; } else if ((pos >= bhava.mid()) && (pos <= bhava.end())) { type = BhavaType.Uttra; }// TODO: CONJUCTION YET TO TEST else { log.info("Residential Strengh! Need to verify"); double length = bhava.length(); double start = bhava.start(); double mid = start + (length / 2); double end = mid + (length / 2); log.info("length " + length); log.info("start " + start); log.info("mid " + mid); log.info("end " + end); log.info("pos " + pos); if (mid <= 360.0) { if (pos >= start && pos <= mid) { type = BhavaType.Poorva; } else { type = BhavaType.Uttra; } } //TODO: Else part verified for suba hor..still if part needs to be verified else { pos = pos + 360; if (pos >= mid && pos <= end) { type = BhavaType.Uttra; } else { type = BhavaType.Poorva; } } log.info("type " + type); } return type; } private EnumMap<Planet, Double> calcSthanaBala() { PlanetBala.put(Bala.OchchaBala, calcOchchaBala()); PlanetBala.put(Bala.SaptavargajaBala, calcSaptavargajaBala()); PlanetBala.put(Bala.OjaYugmarasyamsaBala, calcOjaYugmarasyamsaBala()); PlanetBala.put(Bala.KendraBala, calcKendraBala()); PlanetBala.put(Bala.DrekkanaBala, calcDrekkanaBala()); EnumMap<Planet, Double> SthanaBala = new EnumMap<Planet, Double>( Planet.class); for (Planet p : Planet.majorPlanets()) { double total = 0; for (Bala b : Bala.sthanaBalas()) { total = total + (PlanetBala.get(b).get(p)); } SthanaBala.put(p, total); } PlanetBala.put(Bala.SthanaBala, SthanaBala); return SthanaBala; } private EnumMap<Planet, Double> calcOchchaBala() { double[] debiliPos = {190.0, 213.0, 118.0, 345.0, 275.0, 177.0, 20.0}; EnumMap<Planet, Double> OchchaBala = new EnumMap<Planet, Double>( Planet.class); for (Planet p : Planet.majorPlanets()) { double balaVal = Math.abs(planetPosition.get(p) - debiliPos[p.ordinal()]) / 3; if (balaVal > 60.00) { balaVal = 120.00 - balaVal; } OchchaBala.put(p, balaVal); } return OchchaBala; } private EnumMap<Planet, Double> calcOjaYugmarasyamsaBala() { int rasiSign; int navSign; EnumMap<Planet, Double> OjaYugmarasyamsaBala = new EnumMap<Planet, Double>( Planet.class); for (Planet p : Planet.majorPlanets()) { rasiSign = VargaCharts.oddEven(divChart.get(Varga.Rasi).get(p)); navSign = VargaCharts.oddEven(divChart.get(Varga.Navamsa).get(p)); if ((p == Planet.Sun) || (p == Planet.Mars) || (p == Planet.Mercury) || (p == Planet.Jupiter) || (p == Planet.Saturn)) { OjaYugmarasyamsaBala.put(p, (double) (rasiSign * 15) + (navSign * 15)); } if ((p == Planet.Moon) || (p == Planet.Venus)) { OjaYugmarasyamsaBala.put(p, (double) ((15 * ((rasiSign == 0) ? 1 : 0)) + (15 * ((navSign == 0) ? 1 : 0)))); } } return OjaYugmarasyamsaBala; } private EnumMap<Planet, Double> calcKendraBala() { EnumMap<Planet, Double> KendraBala = initBala(); for (Planet p : Planet.majorPlanets()) { switch (planetLocation.get(p)) { case 1 : case 4 : case 7 : case 10 : KendraBala.put(p, 60.0); break; case 2 : case 5 : case 8 : case 11 : KendraBala.put(p, 30.0); break; case 3 : case 6 : case 9 : case 12 : KendraBala.put(p, 15.0); break; } } return KendraBala; } private EnumMap<Planet, Double> calcDrekkanaBala() { int drek = 0; EnumMap<Planet, Double> DrekkanaBala = initBala(); for (Planet p : Planet.majorPlanets()) { drek = (int) ((planetPosition.get(p) % 30) / 10) + 1; if (((p == Planet.Sun) || (p == Planet.Mars) || (p == Planet.Jupiter)) && (drek == 1)) { DrekkanaBala.put(p, 15.0); } if (((p == Planet.Mercury) || (p == Planet.Saturn)) && (drek == 2)) { DrekkanaBala.put(p, 15.0); } if (((p == Planet.Moon) || (p == Planet.Venus)) && (drek == 3)) { DrekkanaBala.put(p, 15.0); } } return DrekkanaBala; } private EnumMap<Planet, Double> calcSaptavargajaBala() { calcRelationShips(); EnumMap<Planet, Double> SaptavargajaBala = new EnumMap<Planet, Double>( Planet.class); for (Planet p : Planet.majorPlanets()) { SaptavargajaBala.put(p, (SaptavargajaBala(Varga.Rasi, p) + SaptavargajaBala(Varga.Hora, p) + SaptavargajaBala(Varga.Drekkana, p) + SaptavargajaBala(Varga.Saptamsa, p) + SaptavargajaBala(Varga.Navamsa, p) + SaptavargajaBala(Varga.Dwadasamsa, p) + SaptavargajaBala(Varga.Trimshamsa, p))); } return SaptavargajaBala; } private double SaptavargajaBala(Varga varga, Planet pl) { Rasi house; Planet owner; double bala = 0.0; house = Rasi.ofIndex(divChart.get(varga).get(pl) - 1); owner = house.owner(); if (pl == owner) { if ((varga == Varga.Rasi) && owner.isMoolaTrikona(house)) { bala = 45.0; } else { bala = 30.0; } } else { switch (Rel[pl.ordinal()][owner.ordinal()]) { case 2 : bala = 22.5; break; case 1 : bala = 15.0; break; case 0 : bala = 07.5; break; case -1 : bala = 3.75; break; case -2 : bala = 1.875; break; } } return bala; } private void calcRelationShips() { int dist = 0; for (Planet i : Planet.majorPlanets()) { for (Planet j : Planet.majorPlanets()) { if (i == j) { Rel[i.ordinal()][j.ordinal()] = 2; } else { dist = planetLocation.get(j) - planetLocation.get(i) + 1; if (dist <= 0) { dist += 12; } if ((dist == 2) || (dist == 3) || (dist == 4) || (dist == 10) || (dist == 11) || (dist == 12)) { Rel[i.ordinal()][j.ordinal()] = 1; } else { Rel[i.ordinal()][j.ordinal()] = -1; } } Rel[i.ordinal()][j.ordinal()] = Rel[i.ordinal()][j.ordinal()] + AstroConsts.permanentRel(i, j); } } } private EnumMap<Planet, Double> calcDigBala() { double powerLessPos = 0.0; double arc = 0.0; EnumMap<Planet, Double> DigBala = new EnumMap<Planet, Double>( Planet.class); for (Planet p : Planet.majorPlanets()) { if ((p == Planet.Sun) || (p == Planet.Mars)) { powerLessPos = housePosition.getBhava(4).mid(); } if ((p == Planet.Jupiter) || (p == Planet.Mercury)) { powerLessPos = housePosition.getBhava(7).mid(); } if ((p == Planet.Moon) || (p == Planet.Venus)) { powerLessPos = housePosition.getBhava(10).mid(); } if (p == Planet.Saturn) { powerLessPos = housePosition.getBhava(1).mid(); } arc = Math.abs(planetPosition.get(p) - powerLessPos); if (arc > 180.00) { arc = 360.0 - arc; } DigBala.put(p, arc / 3); } return DigBala; } private void calcKalaBala() { calcAhargana(); PlanetBala.put(Bala.AbdaBala, calcAbdaBala()); PlanetBala.put(Bala.MasaBala, calcMasaBala()); PlanetBala.put(Bala.VaraBala, calcVaraBala()); PlanetBala.put(Bala.PakshaBala, calcPakshaBala()); PlanetBala.put(Bala.TribhagaBala, calcTribhagaBala()); PlanetBala.put(Bala.HoraBala, calcHoraBala()); PlanetBala.put(Bala.NatonnataBala, calcNatonnataBala()); PlanetBala.put(Bala.AyanaBala, calcAyanaBala()); PlanetBala.put(Bala.YuddhaBala, calcYuddhaBala()); } private EnumMap<Planet, Double> calcVaraBala() { VaraAdipathi = Planet.ofIndex((int) ((Ahargana + 2) % 7)); EnumMap<Planet, Double> VaraBala = initBala(); VaraBala.put(VaraAdipathi, 45.0); return VaraBala; } private EnumMap<Planet, Double> calcAbdaBala() { Planet AbdaAdipathi = Planet .ofIndex((int) ((((Ahargana / 360) * 3) + 3) % 7)); EnumMap<Planet, Double> AbdaBala = initBala(); AbdaBala.put(AbdaAdipathi, 15.0); return AbdaBala; // System.out.println("AbdaAdipathi: " + AbdaAdipathi); } private EnumMap<Planet, Double> calcMasaBala() { Planet MasaAdipathi = Planet .ofIndex((int) ((((Ahargana / 30) * 2) + 3) % 7)); EnumMap<Planet, Double> MasaBala = initBala(); MasaBala.put(MasaAdipathi, 30.0); return MasaBala; } private void calcAhargana() { int[] monthEnds = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}; int yrdiff = birthYear - 1900; epochDays = ((yrdiff * 365) + (yrdiff / 4) + monthEnds[birthMonth - 1]) - 1 + birthDate; Ahargana = epochDays + 26543; // System.out.println("Epoch Days: " + epochDays + " Ahargana: " + // Ahargana); } private EnumMap<Planet, Double> calcPakshaBala() { EnumMap<Planet, Double> PakshaBala = new EnumMap<Planet, Double>( Planet.class); double arc = Math.abs(planetPosition.get(Planet.Moon) - planetPosition.get(Planet.Sun)); if (arc > 180.0) { arc = 360 - arc; } double subaBala = arc / 3; if (calcSubaPapa(Planet.Moon)) { PakshaBala.put(Planet.Moon, subaBala * 2); } else { PakshaBala.put(Planet.Moon, (60.0 - subaBala) * 2); } PakshaBala.put(Planet.Sun, (60.0 - subaBala)); PakshaBala.put(Planet.Mars, (60.0 - subaBala)); PakshaBala.put(Planet.Saturn, (60.0 - subaBala)); PakshaBala.put(Planet.Jupiter, (subaBala)); PakshaBala.put(Planet.Venus, (subaBala)); if (calcSubaPapa(Planet.Mercury)) { PakshaBala.put(Planet.Mercury, (subaBala)); } else { PakshaBala.put(Planet.Mercury, (60.0 - subaBala)); } return PakshaBala; } private EnumMap<Planet, Double> calcTribhagaBala() { double part = 0; int div = 0; double lsunrise = 0.0; double lsunset = 0.0; if (birthDayNight) { lsunrise = sunrise; lsunset = sunset; } else if (birthData.birthTime() < sunrise) { lsunrise = sunrise; lsunset = AstroUtil.getSunSet(birthYear, birthMonth, birthDate, birthData.longitude(), birthData.latitude(), birthData .timeZone()); } else if (birthData.birthTime() > sunset) { birthDay.add(Calendar.DATE, 1); lsunrise = AstroUtil.getSunRise(birthDay.get(Calendar.YEAR), birthDay.get(Calendar.MONTH) + 1, birthDay .get(Calendar.DATE), birthData.longitude(), birthData.latitude(), birthData.timeZone()); lsunset = sunset; } else { log.severe("TribhagaBala Error:"); } // System.out.println(birthYear+" / "+birthMonth+" / "+ birthDate); EnumMap<Planet, Double> TribhagaBala = initBala(); if (birthDayNight) { part = (lsunset - lsunrise) / 3; div = (int) ((birthData.birthTime() - lsunrise) / part) + 1; switch (div) { case 1 : TribhagaBala.put(Planet.Mercury, 60.0); break; case 2 : TribhagaBala.put(Planet.Sun, 60.0); break; case 3 : TribhagaBala.put(Planet.Saturn, 60.0); break; } } else { part = ((24 + lsunrise) - lsunset) / 3; double diff = birthData.birthTime() - lsunset; if (diff < 0) { diff += 24; } div = (int) (diff / part) + 1; switch (div) { case 1 : TribhagaBala.put(Planet.Moon, 60.0); break; case 2 : TribhagaBala.put(Planet.Venus, 60.0); break; case 3 : TribhagaBala.put(Planet.Mars, 60.0); break; } } TribhagaBala.put(Planet.Jupiter, 60.0); return TribhagaBala; // System.out.println("SR: " + AstroUtil.dms(sunrise) + " SS: " + // AstroUtil.dms(sunset)); } private EnumMap<Planet, Double> calcHoraBala() { EnumMap<Planet, Double> HoraBala = initBala(); Planet[] horaLords = {Planet.Sun, Planet.Venus, Planet.Mercury, Planet.Moon, Planet.Saturn, Planet.Jupiter, Planet.Mars}; int[] wdaydiff = {0, 3, 6, 2, 5, 1, 4}; double sunrise; sunrise = AstroUtil.getSunRise(birthYear, birthMonth, birthDate, birthData.longitude(), birthData.latitude(), birthData .timeZone()); double dur = birthData.birthTime() - sunrise; if (dur < 0) { dur = dur + 24; } int hora = (int) (dur) + 1; int HoraAdipathi = ((wdaydiff[VaraAdipathi.ordinal()] + hora) - 1) % 7; // System.out.println("Dur: " + dur + " Hora: " + hora + " HL : " + // HoraAdipathi + " VL: " + VaraAdipathi); HoraBala.put(horaLords[HoraAdipathi], 60.0); return HoraBala; } private EnumMap<Planet, Double> calcNatonnataBala() { double btimeDeg = SwissHelper.calcNatonnataBalaDeg(birthData.birthSD(), birthData.birthTime()); EnumMap<Planet, Double> NatonnataBala = new EnumMap<Planet, Double>( Planet.class); NatonnataBala.put(Planet.Sun, btimeDeg / 3); NatonnataBala.put(Planet.Jupiter, btimeDeg / 3); NatonnataBala.put(Planet.Venus, btimeDeg / 3); NatonnataBala.put(Planet.Moon, ((180 - btimeDeg) / 3)); NatonnataBala.put(Planet.Mars, ((180 - btimeDeg) / 3)); NatonnataBala.put(Planet.Saturn, ((180 - btimeDeg) / 3)); NatonnataBala.put(Planet.Mercury, 60.0); return NatonnataBala; // System.out.println("\nbt : " + birthData.birthTime() + " E: " + // AstroUtil.dms(EqnOfTime) + sbErr); } private EnumMap<Planet, Double> calcAyanaBala() { double[] kranti; kranti = calcKranti(); EnumMap<Planet, Double> AyanaBala = initBala(); for (Planet p : Planet.majorPlanets()) { if ((p == Planet.Sun) || (p == Planet.Venus) || (p == Planet.Mars) || (p == Planet.Jupiter)) { AyanaBala.put(p, (((24 + kranti[p.ordinal()]) * 60) / 48)); } else if ((p == Planet.Moon) || (p == Planet.Saturn)) { AyanaBala.put(p, (((24 + (kranti[p.ordinal()] * -1)) * 60) / 48)); } else { AyanaBala.put(p, (((24 + Math.abs(kranti[p.ordinal()])) * 60) / 48)); } } AyanaBala.put(Planet.Sun, AyanaBala.get(Planet.Sun) * 2); return AyanaBala; } private double[] calcKranti() { double[] decln = {0, 362 / 60.00, 703 / 60.00, 1002 / 60.00, 1238 / 60.00, 1388 / 60.00, 1440 / 60.00 }; double sayanaPos; int sign; int div; double bhuja = 0; double remdecl; double rem; double[] kranti = new double[7]; for (Planet p : Planet.majorPlanets()) { sayanaPos = planetPosition.get(p) + ayanamsa; if ((sayanaPos > 180) && (sayanaPos <= 360)) { sign = -1; } else { sign = 1; } if ((sayanaPos > 0) && (sayanaPos <= 90)) { bhuja = sayanaPos; } else if ((sayanaPos > 90) && (sayanaPos <= 180)) { bhuja = 180.0 - sayanaPos; } else if ((sayanaPos > 180) && (sayanaPos <= 270)) { bhuja = sayanaPos - 180; } else if ((sayanaPos > 270) && (sayanaPos <= 360)) { bhuja = 360.0 - sayanaPos; } div = (int) bhuja / 15; rem = bhuja % 15; remdecl = ((decln[div + 1] - decln[div]) * rem) / 15.00; kranti[p.ordinal()] = (decln[div] + remdecl) * sign; /* * System.out.println("SayanaPos: " + sayanaPos + " Bhuja: " + bhuja + " * Div " + div + " Rem " + rem + " RemDecl " + remdecl + " Kranti " + * kranti[pl]); */ } return kranti; } private EnumMap<Planet, Double> calcYuddhaBala() { double[] discDia = {0, 0, 9.4, 6.6, 190.4, 16.6, 158.0}; double ybala = 0.0; Planet winner; EnumMap<Planet, Double> YuddhaBala = initBala(); EnumMap<Planet, Double> KalaBala = new EnumMap<Planet, Double>( Planet.class); YuddhaBala.put(Planet.Sun, 0.0); YuddhaBala.put(Planet.Moon, 0.0); PlanetBala.put(Bala.YuddhaBala, YuddhaBala); for (Planet p : Planet.majorPlanets()) { double totalKala = 0.0; for (Bala b : Bala.kalaBalas()) { totalKala = totalKala + PlanetBala.get(b).get(p); } KalaBala.put(p, totalKala); } for (Planet i : EnumSet.range(Planet.Mars, Planet.Venus)) { for (Planet j : EnumSet.range(i.nextPlanet(), Planet.Saturn)) { winner = findWinner(i, j); if (winner != null) { ybala = Math.abs(KalaBala.get(i) - KalaBala.get(j)) / Math.abs(discDia[i.ordinal()] - discDia[j.ordinal()]); // System.out.println("(" + i + " , " + j + ")" + " Ybala: " // + ybala); YuddhaBala.put(i, ybala); if (winner == i) { YuddhaBala.put(i, ybala); YuddhaBala.put(j, ybala * -1); KalaBala.put(i, (KalaBala.get(i) + ybala)); KalaBala.put(j, (KalaBala.get(j) - ybala)); } else { YuddhaBala.put(j, ybala); YuddhaBala.put(i, ybala * -1); KalaBala.put(i, (KalaBala.get(i) - ybala)); KalaBala.put(j, (KalaBala.get(j) + ybala)); } } } } PlanetBala.put(Bala.KalaBala, KalaBala); return YuddhaBala; } private Planet findWinner(Planet i, Planet j) { double diff = planetPosition.get(i) - planetPosition.get(j); Planet winner = null; if ((diff >= -1.00) && (diff <= 00)) { winner = i; } else if ((diff > 0) && (diff <= 1)) { winner = j; } // System.out.println("(" + h.planetPositions[i] + "," + // h.planetPositions[j] + ")" + " Diff: " + diff + " Winner " + winner); return winner; } private EnumMap<Planet, Double> calcDrikBala() { double dk; double[][] drishti = new double[7][7]; double vdrishti; int[] sp = new int[7]; for (Planet p : Planet.majorPlanets()) { if (calcSubaPapa(p)) { sp[p.ordinal()] = 1; } else { sp[p.ordinal()] = -1; } } for (Planet i : Planet.majorPlanets()) { // System.out.print(DisplayConsts.planetSyms[0][i]); for (Planet j : Planet.majorPlanets()) { dk = planetPosition.get(j) - planetPosition.get(i); if (dk < 0) { dk += 360; } vdrishti = findViseshaDrishti(dk, i); drishti[i.ordinal()][j.ordinal()] = findDrishtiValue(dk) + vdrishti; // System.out.print("\t" + AstroUtil.dms(dk)); // System.out.print("\t" + drishti[i][j]*sp[i] + "("+ // AstroUtil.dms(dk) + ")"); /* * if (vdrishti > 0.0) System.out.print(" + " + vdrishti); */ } } double bala = 0; EnumMap<Planet, Double> DrikBala = new EnumMap<Planet, Double>( Planet.class); for (Planet i : Planet.majorPlanets()) { bala = 0; for (Planet j : Planet.majorPlanets()) { bala = bala + (sp[j.ordinal()] * drishti[j.ordinal()][i.ordinal()]); } DrikBala.put(i, bala / 4); // DrikBala[i] = PlanetBala ; } return DrikBala; } private double findDrishtiValue(double dk) { double drishti = 0; if ((dk >= 30.0) && (dk <= 60)) { drishti = (dk - 30) / 2; } else if ((dk > 60.0) && (dk <= 90)) { drishti = (dk - 60) + 15; } else if ((dk > 90.0) && (dk <= 120)) { drishti = ((120 - dk) / 2) + 30; } else if ((dk > 120.0) && (dk <= 150)) { drishti = (150 - dk); } else if ((dk > 150.0) && (dk <= 180)) { drishti = (dk - 150) * 2; } else if ((dk > 180.0) && (dk <= 300)) { drishti = (300 - dk) / 2; } return drishti; } private double findViseshaDrishti(double dk, Planet p) { double vdrishti = 0; switch (p) { case Saturn : if (((dk >= 60) && (dk <= 90)) || ((dk >= 270) && (dk <= 300))) { vdrishti = 45; } break; case Jupiter : if (((dk >= 120) && (dk <= 150)) || ((dk >= 240) && (dk <= 270))) { vdrishti = 30; } break; case Mars : if (((dk >= 90) && (dk <= 120)) || ((dk >= 210) && (dk <= 240))) { vdrishti = 15; } break; default : vdrishti = 0; } return vdrishti; } private EnumMap<Planet, Double> calcChestabala() { double utime = birthData.birthTime() + ((5 + (double) (4.00 / 60.00)) - birthData.timeZone()); double interval = epochDays + (double) (utime / 24.00); double[] madhya = new double[7]; double[] seegh = new double[7]; double correction; double ck; // System.out.println("Interval : " + interval + " BT " + // AstroUtil.dms(birthData.birthTime()) + " UT: " + AstroUtil.dms(utime) // ); madhya[0] = madhya[3] = madhya[5] = ((interval * 0.9855931) + 257.4568) % 360; madhya[2] = ((interval * 0.5240218) + 270.22) % 360; correction = 3.33 + (0.0067 * (birthYear - 1900)); madhya[4] = (((interval * 0.08310024) + 220.04) - correction) % 360; correction = 5 + (0.001 * (birthYear - 1900)); madhya[6] = ((interval * 0.03333857) + 236.74 + correction) % 360; seegh[2] = seegh[4] = seegh[6] = madhya[0]; correction = 6.670 + (0.00133 * (birthYear - 1900)); seegh[3] = ((interval * 4.092385) + 164.00 + correction) % 360; correction = 5 + (0.0001 * (birthYear - 1900)); seegh[5] = (((interval * 1.602159) + 328.51) - correction) % 360; ck = (planetPosition.get(Planet.Sun) + ayanamsa + 90) % 360; if (ck > 180.00) { ck = 360 - ck; } EnumMap<Planet, Double> ChestaBala = new EnumMap<Planet, Double>( Planet.class); ChestaBala.put(Planet.Sun, ck / 3.00); ck = (planetPosition.get(Planet.Moon) - planetPosition.get(Planet.Sun)); if (ck < 0) { ck = ck + 360; } if (ck > 180.00) { ck = 360 - ck; } ChestaBala.put(Planet.Moon, ck / 3.00); for (Planet p : EnumSet.range(Planet.Mars, Planet.Saturn)) { ck = (seegh[p.ordinal()] - ((madhya[p.ordinal()] + planetPosition .get(p)) / 2.0)); if (ck < 360.00) { ck = ck + 360; } ck = ck % 360; if (ck > 180.00) { ck = 360 - ck; } ChestaBala.put(p, ck / 3.00); // System.out.println(DisplayConsts.planetNames[0][pl] + " Madhya: " // + madhya[pl] + " Seeghrochcha: " + seegh[pl]); // System.out.println(DisplayConsts.planetNames[0][pl] + " // ChestaKendra: " + ck + " PlanetPos: " + h.planetPositions[pl]); } return ChestaBala; } public void calcIshtaKashtaBala() { double prod; EnumMap<Planet, Double> IshtaBala = new EnumMap<Planet, Double>( Planet.class); EnumMap<Planet, Double> KashtaBala = new EnumMap<Planet, Double>( Planet.class); for (Planet p : Planet.majorPlanets()) { prod = PlanetBala.get(Bala.OchchaBala).get(p) * PlanetBala.get(Bala.ChestaBala).get(p); // System.out.println(OchchaBala[pl] + " + " + ChestaBala[pl]); IshtaBala.put(p, Math.sqrt(prod)); prod = (60.00 - PlanetBala.get(Bala.OchchaBala).get(p)) * (60.00 - PlanetBala.get(Bala.ChestaBala).get(p)); KashtaBala.put(p, Math.sqrt(prod)); } PlanetBala.put(Bala.IshtaBala, IshtaBala); PlanetBala.put(Bala.KashtaBala, KashtaBala); } public void calcBhavaBalas() { BhavaBala = new EnumMap<Bala, ArrayList<Double>>(Bala.class); BhavaBala.put(Bala.BhavaAdhipathiBala, calcBhavaAdhipathiBala()); BhavaBala.put(Bala.BhavaDigBala, calcBhavaDigBala()); BhavaBala.put(Bala.BhavaDrishtiBala, calcBhavaDrishtiBala()); ArrayList<Double> totalBhavaBala = new ArrayList<Double>(); for (int i = 0; i < 12; i++) { double total = 0; for (Bala b : Bala.bhavaBalas()) { total = total + BhavaBala.get(b).get(i); } totalBhavaBala.add(i, total); } BhavaBala.put(Bala.BhavaBala, totalBhavaBala); } public ArrayList<Double> calcBhavaAdhipathiBala() { Planet owner; ArrayList<Double> BhavaAdhipathiBala = new ArrayList<Double>(); for (int i = 1; i <= 12; i++) { owner = housePosition.getBhava(i).house().owner(); BhavaAdhipathiBala.add(i - 1, PlanetBala.get(Bala.ShadBala).get( owner)); } return BhavaAdhipathiBala; } public ArrayList<Double> calcBhavaDigBala() { ArrayList<Double> BhavaDigBala = new ArrayList<Double>(); int dig = 0; for (int i = 1; i <= 12; i++) { if ((housePosition.getBhava(i).mid() >= 210.00) && (housePosition.getBhava(i).mid() <= 240.00)) { dig = 1 - i; } else if (((housePosition.getBhava(i).mid() >= 0.00) && (housePosition .getBhava(i).mid() <= 60.00)) || ((housePosition.getBhava(i).mid() >= 120.00) && (housePosition .getBhava(i).mid() <= 150.00)) || ((housePosition.getBhava(i).mid() >= 255.00) && (housePosition .getBhava(i).mid() <= 285.00))) { dig = 4 - i; } else if (((housePosition.getBhava(i).mid() >= 60.00) && (housePosition .getBhava(i).mid() <= 90.00)) || ((housePosition.getBhava(i).mid() >= 150.00) && (housePosition .getBhava(i).mid() <= 210.00)) || ((housePosition.getBhava(i).mid() >= 300.00) && (housePosition .getBhava(i).mid() <= 330.00)) || ((housePosition.getBhava(i).mid() >= 240.00) && (housePosition .getBhava(i).mid() <= 255.00))) { dig = 7 - i; } else if (((housePosition.getBhava(i).mid() >= 90.00) && (housePosition .getBhava(i).mid() <= 120.00)) || ((housePosition.getBhava(i).mid() >= 330.00) && (housePosition .getBhava(i).mid() <= 360.00)) || ((housePosition.getBhava(i).mid() >= 285.00) && (housePosition .getBhava(i).mid() <= 300.00))) { dig = 10 - i; } if (dig < 0) { dig = dig + 12; } if (dig > 6) { dig = 12 - dig; } BhavaDigBala.add(i - 1, (double) dig * 10); } return BhavaDigBala; } private ArrayList<Double> calcBhavaDrishtiBala() { double dk; double[][] drishti = new double[7][12]; double vdrishti; int[] sp = new int[7]; for (Planet p : Planet.majorPlanets()) { if (calcSubaPapa(p)) { sp[p.ordinal()] = 1; } else { sp[p.ordinal()] = -1; } } sp[3] = 1; for (Planet i : Planet.majorPlanets()) { for (int j = 1; j <= 12; j++) { dk = housePosition.getBhava(j).mid() - planetPosition.get(i); if (dk < 0) { dk += 360; } vdrishti = findViseshaDrishti(dk, i); if ((i == Planet.Mercury) || (i == Planet.Jupiter)) { drishti[i.ordinal()][j - 1] = findDrishtiValue(dk) + vdrishti; } else { drishti[i.ordinal()][j - 1] = (findDrishtiValue(dk) + vdrishti) / 4.00; } } } double bala = 0; ArrayList<Double> BhavaDrishtiBala = new ArrayList<Double>(); for (int i = 0; i < 12; i++) { bala = 0; for (int j = 0; j < 7; j++) { bala = bala + (sp[j] * drishti[j][i]); } BhavaDrishtiBala.add(i, bala); } return BhavaDrishtiBala; } private void calcRanks() { List<ComparableEntry<Planet, Double>> StrengthPerOrdered = Utils .sortMap(StrengthPer.entrySet(), true); ShadBalaRank = new EnumMap<Planet, Integer>(Planet.class); for (int rank = 1; rank <= 7; rank++) { ComparableEntry<Planet, Double> entry = StrengthPerOrdered .get(rank - 1); ShadBalaRank.put(entry.getKey(), rank); } BhavaBalaRank = new ArrayList<Integer>(); ArrayList<Double> BhavaBalaOrig = BhavaBala.get(Bala.BhavaBala); ArrayList<Double> BhavaBalaOrdered = new ArrayList<Double>(); BhavaBalaOrdered.addAll(BhavaBalaOrig); Collections.sort(BhavaBalaOrdered, Collections.reverseOrder()); for (int house = 0; house < 12; house++) { int rank = BhavaBalaOrdered.indexOf(BhavaBalaOrig.get(house)) + 1; BhavaBalaRank.add(house, rank); } } private static EnumMap<Planet, Double> initBala() { EnumMap<Planet, Double> bala = new EnumMap<Planet, Double>(Planet.class); for (Planet p : Planet.majorPlanets()) { bala.put(p, 0.0); } return bala; } public Map<Planet, Double> getStrengthPer() { return StrengthPer; } public TableData<PlanetBalaRow> getPlanetBalaTableData() { if (planetBalaTableData == null) { planetBalaTableData = new PlanetBalaTableData(); } return planetBalaTableData; } public DefaultColumnMetaData getPlanetBalaColumnMetaData() { if (planetBalaColumnMetaData == null) { planetBalaColumnMetaData = new PlanetBalaColumnMetaData(Bala .planetBalas(), AstrosoftTableColumn.ShadBala, AstrosoftTableColumn.Rupa, AstrosoftTableColumn.BalaPercentage, AstrosoftTableColumn.Rank, AstrosoftTableColumn.IshtaBala, AstrosoftTableColumn.KashtaBala){ @Override public Comparator getColumnComparator(final AstrosoftTableColumn col) { return new Comparator(){ public int compare(Object o1, Object o2) { if(sortableColumns.contains(col)) { Comparable r1 = (Comparable)((PlanetBalaRow)o1).getColumnData(col); Comparable r2 = (Comparable)((PlanetBalaRow)o2).getColumnData(col); if (r1 == null && r2 ==null){ return 0; }else if (r1 == null){ return -1; }else if (r2 == null){ return 1; }else { return r1.compareTo(r2); } }else{ return 0; } } }; } }; planetBalaColumnMetaData.setSortableColumns(AstrosoftTableColumn.Planet, AstrosoftTableColumn.ResidentialStrength, AstrosoftTableColumn.Rank, AstrosoftTableColumn.KashtaBala, AstrosoftTableColumn.IshtaBala); } return planetBalaColumnMetaData; } public TableData<BhavaBalaRow> getBhavaBalaTableData() { if (bhavaBalaTableData == null) { bhavaBalaTableData = new BhavaBalaTableData(); } return bhavaBalaTableData; } public DefaultColumnMetaData getBhavaBalaColumnMetaData() { if (bhavaBalaColumnMetaData == null) { List<AstrosoftTableColumn> cols = Bala.toTableColumn(Bala .bhavaBalas()); cols.add(0, AstrosoftTableColumn.House); cols.add(1,AstrosoftTableColumn.Bhava); cols.add(AstrosoftTableColumn.BhavaBala); cols.add(AstrosoftTableColumn.Rupa); cols.add(AstrosoftTableColumn.Rank); bhavaBalaColumnMetaData = new DefaultColumnMetaData(cols) { @Override public Class getColumnClass(AstrosoftTableColumn col) { switch (col) { case House : case Rank: return Roman.class; case Bhava: return Bhava.class; } return Number.class; } @Override public Comparator getColumnComparator(final AstrosoftTableColumn col) { return new Comparator(){ public int compare(Object o1, Object o2) { if (sortableColumns.contains(col)){ Comparable r1 = (Comparable)((BhavaBalaRow)o1).getColumnData(col); Comparable r2 = (Comparable)((BhavaBalaRow)o2).getColumnData(col); return r1.compareTo(r2); }else{ return 0; } } }; } }; bhavaBalaColumnMetaData.localizeColumns(); bhavaBalaColumnMetaData.setSortableColumns(AstrosoftTableColumn.Bhava, AstrosoftTableColumn.Rank); } return bhavaBalaColumnMetaData; } public DefaultColumnMetaData getSthanaBalaColumnMetaData() { if (sthanaBalaColumnMetaData == null) { sthanaBalaColumnMetaData = new PlanetBalaColumnMetaData(Bala .sthanaBalas(), AstrosoftTableColumn.SthanaBala); } return sthanaBalaColumnMetaData; } public DefaultColumnMetaData getKalaBalaColumnMetaData() { if (kalaBalaColumnMetaData == null) { kalaBalaColumnMetaData = new PlanetBalaColumnMetaData(Bala .kalaBalas(), AstrosoftTableColumn.KalaBala); } return kalaBalaColumnMetaData; } private class PlanetBalaColumnMetaData extends DefaultColumnMetaData { public PlanetBalaColumnMetaData(EnumSet<Bala> balas, AstrosoftTableColumn... otherCols) { List<AstrosoftTableColumn> cols = Bala.toTableColumn(balas); cols.add(0, AstrosoftTableColumn.Planet); for (AstrosoftTableColumn col : otherCols) { cols.add(col); } super.addColumns(cols); localizeColumns(); } @Override public Class getColumnClass(AstrosoftTableColumn col) { switch (col) { case Planet : return Planet.class; case Rank: return Roman.class; } return Number.class; } } private class PlanetBalaTableData implements TableData<PlanetBalaRow> { public PlanetBalaRow getRow(int index) { return new PlanetBalaRow(Planet.values()[index]); } public int getRowCount() { return 9; } } private class PlanetBalaRow implements TableRowData { Planet row; public PlanetBalaRow(Planet row) { this.row = row; } public Object getColumnData(AstrosoftTableColumn col) { if (col == AstrosoftTableColumn.Planet) { return row; } else if (col == AstrosoftTableColumn.Rupa) { Double val = PlanetBala.get(Bala.ShadBala).get(row); if (val != null){ return val / 60.00; }else{ return null; } } else if (col == AstrosoftTableColumn.BalaPercentage) { return StrengthPer.get(row); } else if (col == AstrosoftTableColumn.Rank) { Integer rank = ShadBalaRank.get(row); if (rank != null) return Roman.of(ShadBalaRank.get(row)); else return null; } else { Bala b = col.toEnum(Bala.class); return PlanetBala.get(b).get(row); } } } private class BhavaBalaTableData implements TableData<BhavaBalaRow> { public BhavaBalaRow getRow(int index) { return new BhavaBalaRow(index); } public int getRowCount() { return 12; } } private class BhavaBalaRow implements TableRowData { int bhava; public BhavaBalaRow(int row) { this.bhava = row; } public Object getColumnData(AstrosoftTableColumn col) { if (col == AstrosoftTableColumn.House ){ return Roman.of(bhava + 1); } else if (col == AstrosoftTableColumn.Bhava) { return housePosition.getBhava(bhava + 1).house(); } else if (col == AstrosoftTableColumn.Rupa) { return BhavaBala.get(Bala.BhavaBala).get(bhava) / 60.00; } else if (col == AstrosoftTableColumn.Rank) { return Roman.of(BhavaBalaRank.get(bhava)); } else { Bala b = col.toEnum(Bala.class); return BhavaBala.get(b).get(bhava); } } } public void doExport(Exporter e) { e.export(this); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("ShadBala \n"); for (Planet p : Planet.majorPlanets()) { // sb.append("Planet Position: " + h.planetPositions[i]); sb.append(p.toString() + " --> " + planetLocation.get(p) + "\n"); sb.append(p.toString() + " --> " + PlanetBala.get(Bala.ResidentialStrength).get(p) + "\n"); sb.append("OchachaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.OchchaBala).get(p) + "\n"); sb.append("OjaYugmarasyamsaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.OjaYugmarasyamsaBala).get(p) + "\n"); sb.append("KendraBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.KendraBala).get(p) + "\n"); sb.append("DrekkanaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.DrekkanaBala).get(p) + "\n"); sb.append("SapthavargaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.SaptavargajaBala).get(p) + "\n"); sb.append("SthanaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.SthanaBala).get(p) + "\n"); sb.append("DigBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.DigBala).get(p) + "\n"); sb.append("NaisargikaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.NaisargikaBala).get(p) + "\n"); sb.append("AbdaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.AbdaBala).get(p) + "\n"); sb.append("MasaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.MasaBala).get(p) + "\n"); sb.append("VaraBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.VaraBala).get(p) + "\n"); sb.append("PakshaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.PakshaBala).get(p) + "\n"); sb.append("TribhagaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.TribhagaBala).get(p) + "\n"); sb.append("HoraBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.HoraBala).get(p) + "\n"); sb.append("NatonnataBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.NatonnataBala).get(p) + "\n"); sb.append("AyanaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.AyanaBala).get(p) + "\n"); sb.append("YuddhaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.YuddhaBala).get(p) + "\n"); sb.append("KalaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.KalaBala).get(p) + "\n"); sb.append("DrikBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.DrikBala).get(p) + "\n"); sb.append("ChestaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.ChestaBala).get(p) + "\n"); sb.append("IshtaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.IshtaBala).get(p) + "\n"); sb.append("KashtaBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.KashtaBala).get(p) + "\n"); sb.append("ShadBala:-->" + p.toString() + " :-> " + PlanetBala.get(Bala.ShadBala).get(p) / 60.00 + "\n"); sb.append("ShadBala Per:-->" + p.toString() + " :-> " + this.StrengthPer.get(p) + "\n"); sb.append("ShadBala Rank:-->" + p.toString() + " :-> " + ShadBalaRank.get(p) + "\n"); } for (int i = 0; i < 12; i++) { sb.append("BhavaAdhipathiBala: " + (i + 1) + " : -->" + BhavaBala.get(Bala.BhavaAdhipathiBala).get(i) / 60.00 + "\n"); sb.append("BhavaDigBala: " + (i + 1) + " : -->" + BhavaBala.get(Bala.BhavaDigBala).get(i) + "\n"); sb.append("BhavaDrishtiBala: " + (i + 1) + " : -->" + BhavaBala.get(Bala.BhavaDrishtiBala).get(i) + "\n"); sb.append("BhavaBala: " + (i + 1) + " : -->" + BhavaBala.get(Bala.BhavaBala).get(i) + "\n"); sb.append("BhavaBala Rank: " + (i + 1) + " : -->" + BhavaBalaRank.get(i) + "\n"); } sb.append("\n"); return sb.toString(); } public static void main(String[] args) { Horoscope h = new Horoscope( "Raja", 11, 12, 1980, 1, 44, 77 + ( 44.00 / 60.00 ), 11 + ( 22.00 / 60.00 ), 5.5, "Erode" ); /* * Horoscope h = new Horoscope("Elango", 17, 4, 1957, 7, 10, 77 + (44.00 / * 60.00), 11 + (22.00 / 60.00), 5.5, "Erode"); */ /*Horoscope h = new Horoscope("Mani", 10, 8, 1960, 5, 30, 77 + (44.00 / 60.00), 11 + (22.00 / 60.00), 5.5, "Erode");*/ // Horoscope h = new // Horoscope("Jayaram",13,5,1979,10,12,80+(15.00/60.00),11+(22.00/60.00),5.5,"Chennai"); // Horoscope h = new // Horoscope("Suba",31,3,1988,17,56,77+(44.00/60.00),11+(22.00/60.00),5.5,"Erode"); // Horoscope h = new // Horoscope("Mani",10,8,1960,5,30,77+(44.00/60.00),11+(22.00/60.00),5.5,"Erode"); // Horoscope h = new // Horoscope("BV",16,10,1918,14,26,77+(34.00/60.00),13+(0.00/60.00),5.5,"Banglore"); h.setAyanamsa(Ayanamsa.KRISHNAMURTHI); ShadBala sb = new ShadBala(h.getPlanetaryInfo(), h.getHousePosition(), h.getBirthData(), h.getAyanamsa(), h.getSunrise(), h .getSunset(), h.getPaksha()); System.out.println(sb); } }