I am working to an aplication who calculate the menstruation of girls.
input: a calendar
- start_day(the start day of menstrual cycle wich is with
red in the calendar )
- end_day(the end day of menstrual cycle wich is with yellow
in the calendar)
- mens(menstruation length)
output(what I want to optain):
I want to display on the calendar the
start(red background) and the end(yellow background) of menstruation
for the next 6 month. I manage to do this for 2 months and im block
now.
PLEASE IF SOMEONE HAVE ANY IDEA!! Thank you verry much!
Catalin
code for calendar: ShowCalendar.java:
public class ShowCalendar extends Activity
{
public static final String selectedDate="selectedDate";
public int mYear;
public int mMonth;
public int mDay;
static int realDay, realMonth, realYear, currentMonth,
currentYear;
private Enumeration<Girl.Period> e;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calendar);
GregorianCalendar cal = new GregorianCalendar(); //Create
calendar
realDay = cal.get(GregorianCalendar.DAY_OF_MONTH); //Get day
realMonth = cal.get(GregorianCalendar.MONTH); //Get month
realYear = cal.get(GregorianCalendar.YEAR); //Get year
currentMonth=realMonth;
currentYear=realYear;
TextView t1=(TextView) findViewById(R.id.t1);
TextView t2=(TextView) findViewById(R.id.t2);
TextView t3=(TextView) findViewById(R.id.t3);
TextView t4=(TextView) findViewById(R.id.t4);
TextView t5=(TextView) findViewById(R.id.t5);
TextView t6=(TextView) findViewById(R.id.t6);
TextView t7=(TextView) findViewById(R.id.t7);
TextView t8=(TextView) findViewById(R.id.t8);
TextView t9=(TextView) findViewById(R.id.t9);
TextView t10=(TextView) findViewById(R.id.t10);
TextView t11=(TextView) findViewById(R.id.t11);
TextView t12=(TextView) findViewById(R.id.t12);
TextView t13=(TextView) findViewById(R.id.t13);
TextView t14=(TextView) findViewById(R.id.t14);
TextView t15=(TextView) findViewById(R.id.t15);
TextView t16=(TextView) findViewById(R.id.t16);
TextView t17=(TextView) findViewById(R.id.t17);
TextView t18=(TextView) findViewById(R.id.t18);
TextView t19=(TextView) findViewById(R.id.t19);
TextView t20=(TextView) findViewById(R.id.t20);
TextView t21=(TextView) findViewById(R.id.t21);
TextView t22=(TextView) findViewById(R.id.t22);
TextView t23=(TextView) findViewById(R.id.t23);
TextView t24=(TextView) findViewById(R.id.t24);
TextView t25=(TextView) findViewById(R.id.t25);
TextView t26=(TextView) findViewById(R.id.t26);
TextView t27=(TextView) findViewById(R.id.t27);
TextView t28=(TextView) findViewById(R.id.t28);
TextView t29=(TextView) findViewById(R.id.t29);
TextView t30=(TextView) findViewById(R.id.t30);
TextView t31=(TextView) findViewById(R.id.t31);
TextView t32=(TextView) findViewById(R.id.t32);
TextView t33=(TextView) findViewById(R.id.t33);
TextView t34=(TextView) findViewById(R.id.t34);
TextView t35=(TextView) findViewById(R.id.t35);
TextView t36=(TextView) findViewById(R.id.t36);
TextView t37=(TextView) findViewById(R.id.t37);
TextView t38=(TextView) findViewById(R.id.t38);
TextView t39=(TextView) findViewById(R.id.t39);
TextView t40=(TextView) findViewById(R.id.t40);
TextView t41=(TextView) findViewById(R.id.t41);
TextView t42=(TextView) findViewById(R.id.t42);
TextView[][] a=new TextView[][]{{t1,t2,t3,t4,t5,t6,t7},
{t8,t9,t10,t11,t12,t13,t14},{t15,t16,t17,t18,t19,t20,t21},
{t22,t23,t24,t25,t26,t27,t28},{t29,t30,t31,t32,t33,t34,t35},
{t36,t37,t38,t39,t40,t41,t42}};
refreshCalendar(realMonth,realYear,a);
}
public void refreshCalendar(int month,int year,final TextView[][]
a){
Girl aGirl=null;
//Variables
String[] months = {"January", "February", "March", "April",
"May", "June", "July", "August", "September", "October", "November",
"December"};
int nod, som, mom;
//Get number of days and start of month
GregorianCalendar cal2 = new GregorianCalendar(year, month,
7);
nod = cal2.getActualMaximum(GregorianCalendar.DAY_OF_MONTH);
som = cal2.get(GregorianCalendar.DAY_OF_WEEK);
mom= cal2.get(GregorianCalendar.MONTH);
int row;
int column;
TextView monthYear=(TextView) findViewById(R.id.month);
TextView average=(TextView) findViewById(R.id.mens_red);
Bundle extras = getIntent().getExtras();
if(extras !=null){
final int id = extras.getInt("id");
SqLiteGirlList g = SqLiteGirlList.getInstance();
aGirl = g.get(id);
e = aGirl.getPeriods();
}
//clear table
for (int i=0;i<6;i++){
for (int j=0;j<7;j++){
a[i][j].setText(null);
}
}
//Draw calendar
for (int i=1; i<=nod; i++){
row = (i + som - 2) / 7;
column = (i+som-2)%7;
if(i<10)
a[row][column].setText(i+"");
else
a[row][column].setText(i+"");
}
Button back=(Button) findViewById(R.id.back);
Button forward=(Button) findViewById(R.id.forward);
//Allow/disallow buttons
if (month == 0 && year <= realYear-100)
{back.setEnabled(false);} //Too early
if (month == 11 && year >= realYear+100)
{forward.setEnabled(false);} //Too late
monthYear.setText(months[month]+" "+year);
//System.out.println("outside");
//System.out.println("inside");
Girl.Period p=e.nextElement();
String start_day_m, end_day_m, end_day;
Date d=p.getPeriodStart() ;
int end_day_m1, end_day_m2;
int start_day_m1, start_day_m2;
long milPerDay = 1000*60*60*24;
int mens = p.getMenstruation() ;//menstruation length
int mens1= mens-1;
long length_cycle = p.calcDif(p.getPeriodStart() ,
p.getPeriodEnd() ) ;
long sumMC= mens+length_cycle;
//System.out.println("insideeemens"+ sumMC);
//System.out.println("insideee"+ ss/milPerDay);
// start_day_m is the first day of bleeding in the first
month
start_day_m=String.valueOf(d.getDate());
// System.out.println("insideeestart"+ start_day_m);
// end_day_m is the last day of bleeding in the first
month
end_day_m = String.valueOf(d.getDay()+ mens1);
// System.out.println("insideeend"+ end_day_m);
Date d3=null;
if(p.getPeriodEnd()!=null){
d3=p.getPeriodEnd() ;
start_day_m1=d3.getDate()+1;
}
else
start_day_m1=0;
end_day_m1=start_day_m1+mens-1;
int end_day_mm1= end_day_m1;
if(end_day_m1>nod ){
d3=p.getPeriodEnd() ;
end_day_m1-=nod+1;
}else if(end_day_mm1<nod){
d3=p.getPeriodEnd() ;
end_day_mm1=start_day_m1+mens-1;
}
//
System.out.println("------------------------------------------------------------------------------------");
for(int i=0;i<6;i++){
for(int j=0;j<7;j++){
a[i][j].setBackgroundResource(R.color.gray);
//System.out.println("Start month &
year="+monthYear.getText().toString()+" Start day="+a[i]
[j].getText());
//System.out.println("comp with year="+(d.getYear()
+1900)+" month="+months[d.getMonth()]+" day="+start_day);
//-----------------------------------------month1
its
ok-----------------------------------------------------------------
if(monthYear.getText().toString().indexOf(String.valueOf(d.getYear()
+1900))>-1 &&
monthYear.getText().toString().indexOf(months[d.getMonth()])>-1 && a[i]
[j].getText().equals(String.valueOf(start_day_m))){
a[i][j].setBackgroundResource(R.color.red) ;
System.out.println("arayStart"+ a[i][j]);
}
if(monthYear.getText().toString().indexOf(String.valueOf(d.getYear()
+1900))>-1 &&
monthYear.getText().toString().indexOf(months[d.getMonth()])>-1 && a[i]
[j].getText().equals(String.valueOf(end_day_m))){
a[i][j].setBackgroundResource(R.color.yellow) ;
//System.out.println("arayEnd"+ a[i][j]);
//System.out.println("startMatch");
}
//-----------------------------------------month2
its
ok-----------------------------------------------------------------
//System.out.println("End month &
year="+monthYear.getText().toString()+" End day="+a[i][j].getText());
//System.out.println("comp with year="+
(d2.getYear()+1900)+" month="+months[d2.getMonth()]+" day="+end_day);
if(monthYear.getText().toString().indexOf(String.valueOf(d3.getYear()
+1900))>-1 &&
monthYear.getText().toString().indexOf(months[d3.getMonth()])>-1 &&
a[i][j].getText().equals(String.valueOf(start_day_m1))){
a[i][j].setBackgroundResource(R.color.red) ;
//System.out.println("endMatch");
}
if(monthYear.getText().toString().indexOf(String.valueOf(d3.getYear()
+1900))>-1 &&
monthYear.getText().toString().indexOf(months[d3.getMonth()])>-1 &&
a[i][j].getText().equals(String.valueOf(end_day_mm1))){
a[i]
[j].setBackgroundResource(R.color.yellow);
}
if(monthYear.getText().toString().indexOf(String.valueOf(d3.getYear()
+1900))>-1 &&
monthYear.getText().toString().indexOf(months[d3.getMonth()+1])>-1 &&
a[i][j].getText().equals(String.valueOf(end_day_m1))){
a[i]
[j].setBackgroundResource(R.color.yellow);
}
//-----------------------------------------
month3-----------------------------------------------------------------
//
System.out.println("------------------------------------------------------------------------------------");
}
}
back.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
if (currentMonth == 0){ //Back one year
currentMonth = 11;
currentYear -= 1;
}
else{ //Back one month
currentMonth -= 1;
}
refreshCalendar(currentMonth, currentYear,a);
}
});
forward.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
if (currentMonth == 11){ //Forward one year
currentMonth = 0;
currentYear += 1;
}
else{ //Forward one month
currentMonth += 1;
}
refreshCalendar(currentMonth, currentYear,a);
}
});
}
}
--
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en