Java program do wyznaczania biorytmu

0

Witam
Jestem początkujący i proszę o pomoc z moim programem bo siedzę nad tym błędem i pomysły mi się skończyły może ktoś zna odpowiedz z góry dziękuje za każdą pomoc

double FBiorytm(double fDni, Biorytmy rodzaj )
{
return (100 * Math.sin((2 * Math.PI / rodzaj) * fDni));
}

The operator / is undefined for the argument type(s) double, biorytmConsola.Biorytmy - może przyczyna leży w typie wyliczeniowym

Kod programu:
**

**
import java.util.Calendar;
import java.math.*;
import javax.swing.*;
import javax.xml.crypto.Data;
import java.util.Date;
import java.util.GregorianCalendar;
public class biorytmConsola {

	//final double PI = 3.1415926538;
	public enum  Biorytmy {
		BIOF (23),
		BIOE (28), 
		BIOI (33);
		
		private final int typbiorytmu; //rodzaj biorytmu
		Biorytmy(int typbiorytmu){
		this.typbiorytmu = typbiorytmu;
		}
		private int getTypBiorytmu(){
			return typbiorytmu;
		}
	}


	//private static final double PI = 3.1415926538;
	
	double FBiorytm(double fDni,  Biorytmy rodzaj )
	{
		return (100 * Math.sin((2 * Math.PI / rodzaj) * fDni));
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		Biorytmy m = Biorytmy.BIOE;
		GregorianCalendar DataUrodzenia = new GregorianCalendar();
		GregorianCalendar AktualnyCzas = new GregorianCalendar();
		GregorianCalendar RoznicaCzasu = new GregorianCalendar();
		
		// aktualna data
		
		int adzien =  AktualnyCzas.get(Calendar.DAY_OF_MONTH);
		int amiesiac = AktualnyCzas.get(Calendar.MONTH);
		int arok = AktualnyCzas.get(Calendar.YEAR);
		
		//pobieranie daty urodzenia
		
		String wejscie = JOptionPane.showInputDialog("Podaj rok urodzenia");
		int prok = Integer.parseInt(wejscie);
		 prok -= 1900;
		
		wejscie = JOptionPane.showInputDialog("Podaj miesiac urodzenia");
		 int pmiesiac = Integer.parseInt(wejscie);
		
		wejscie = JOptionPane.showInputDialog("Podaj dzien urodzenia");
		 int pdzien = Integer.parseInt(wejscie);
        
		//oblicznie roznicy w dacie urodzenia
		 
		int rdzien;
		rdzien = adzien - pdzien;
		RoznicaCzasu.set(Calendar.DAY_OF_MONTH,rdzien);
		
		int rmiesiac;
		rmiesiac = amiesiac - pmiesiac;
		RoznicaCzasu.set(Calendar.MONTH, rmiesiac);
		
		int rrok;
		rrok = arok - prok;
		RoznicaCzasu.set(Calendar.YEAR, rrok);
		
		//obliczanie ile dni uplynelo od narodzin 
		//przy wykorzystaniu sredniej dni dla miesiaca i roku nie trzeba uwzgledniac lat przestepnych
		
		double PrzezyteDni = rrok * 365.25 + rmiesiac * 30.4375 + rdzien;
		
		//Wyswietlenie biorytmow dla danej osoby
		System.out.println("Biorytm fizyczny: " + FBiorytm(PrzezyteDni,m.getTypBiorytmu()));
		System.out.println("Biorytm emocjonalny: " + FBiorytm(PrzezyteDni,m.getTypBiorytmu()));
		System.out.println("Biorytm intelektualny: " + FBiorytm(PrzezyteDni,m.getTypBiorytmu()));
		
	}**

**

Problem występuje również z wyświetleniem biorytmu gdyż funkcja FBiorytm zwraca błąd przy wywołaniu jej z tymi parametrami

FBiorytm(PrzezyteDni,m.getTypBiorytmu())

Dziękuje za pomoc

1

Wyrzuć ten kod do kosza i napisz program od nowa.

  1. Tak wywołujesz
System.out.println("Biorytm intelektualny: " + FBiorytm(PrzezyteDni,m.getTypBiorytmu()));

Funkcja getTypBiorytmu() zwraca int-a, dlaczego FBiorytm nie ma takiej sygnatury FBiorytm(double,int)?
2. W trzech ostatnich wierszach tekst będzie różny, ale liczby identyczne.
3. Wpisałem datę urodzeni 23 kwietnia 2013 i dowiedziałem się, że przeżyłem już 693944.5625 dni.
4. get(Calendar.MONTH) zwraca liczbę z przedziału [0,11].
...

1 użytkowników online, w tym zalogowanych: 0, gości: 1