Friday, 6 September 2013

how to join two month dates in single row

how to join two month dates in single row

my full source code is here https://www.zeta-uploader.com/250346470 only
problum is my code show null values after end or before 1st day of month
see this image http://imgur.com/cNvz1fN this guy help little how to show
previousmonth dates in calender his code remove null values but using his
code not change weeks only change months
Calendar mCalendar = Calendar.getInstance();
mYear = mCalendar.get(Calendar.YEAR);
mMonth = mCalendar.get(Calendar.MONTH) + 1;
mDay = mCalendar.get(Calendar.DAY_OF_MONTH);
last_week.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (mMonth == 1) {
mYear -= 1;
mMonth = 12;
new ShowCalendar(mYear, mMonth, mDay, "last");
showOnScreen();
} else {
if (HoyahCalendar.currentIndex == 0) {
// HoyahCalendar.currentIndex = -1;
mMonth -= 1;
HoyahCalendar.currentIndex =5;
}
new ShowCalendar(mYear, mMonth , mDay, "last");
showOnScreen();
}
}
});
next_week.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (mMonth == 12) {
mYear += 1;
mMonth = 1;
new ShowCalendar(mYear, mMonth, mDay, "next");
showOnScreen();
} else {
if (HoyahCalendar.currentIndex == 4) {
HoyahCalendar.currentIndex = -1;
mMonth += 1;
}
new ShowCalendar(mYear, mMonth, mDay, "next");
showOnScreen();
}
}
});
new ShowCalendar(mYear, mMonth);
showOnScreen();
}
public class ShowCalendar {
int mYear;
int mMonth;
int mDay;
public ShowCalendar(int mYear, int mMonth) {
this.mYear = mYear;
this.mMonth = mMonth;
calculateMonthFirstday();
}
public int getmDay() {
return mDay;
}
public void setmDay(int mDay) {
this.mDay = mDay;
}
public ShowCalendar(int mYear, int mMonth, int mDay, String time) {
this.mYear = mYear;
this.mMonth = mMonth;
if (time == "next") {
HoyahCalendar.currentIndex++;
this.mDay = mDay + 7;
} else if (time == "last") {
if (HoyahCalendar.currentIndex == 5)
{
HoyahCalendar.currentIndex--;
calculateMonthFirstday();
}
else{
HoyahCalendar.currentIndex--;
this.mDay = mDay - 7;
}
}
calculateMonthFirstday();
}
public void calculateMonthFirstday() {
int month, first_day = 0;
if ((mYear % 4 == 0 && mYear % 100 != 0) || (mYear % 400 == 0))
month = 1;
else
month = 0;
int y, y12, c, c12, m, d;
y = mYear % 100;
y12 = (mYear - 1) % 100; // only for January and February
c = mYear / 100;
c12 = (mYear - 1) / 100;
m = mMonth;
d = 1;
switch (mMonth) {
case 1: {
first_day = y12 + y12 / 4 + c12 / 4 - 2 * c12 + 26 * (13 + 1) / 10
+ d - 1;
break;
}
case 2: {
first_day = y12 + y12 / 4 + c12 / 4 - 2 * c12 + 26 * (14 + 1) / 10
+ d - 1;
break;
}
case 3: {
first_day = y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1;
break;
}
case 4: {
first_day = y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1;
break;
}
case 5: {
first_day = y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1;
break;
}
case 6: {
first_day = y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1;
break;
}
case 7: {
first_day = y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1;
break;
}
case 8: {
first_day = y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1;
break;
}
case 9: {
first_day = y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1;
break;
}
case 10: {
first_day = y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1;
break;
}
case 11: {
first_day = y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1;
break;
}
case 12: {
first_day = y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1;
break;
}
}
if (first_day < 0)
first_day = 7 - (Math.abs(first_day)) % 7;//
else
first_day = first_day % 7;
switch (mMonth) {
case 1: {
CalculateCalendar(1, first_day, 31);
break;
}
case 2: {
CalculateCalendar(2, first_day, 28 + month);
break;
}
case 3: {
CalculateCalendar(3, first_day, 31);
break;
}
case 4: {
CalculateCalendar(4, first_day, 30);
break;
}
case 5: {
CalculateCalendar(5, first_day, 31);
break;
}
case 6: {
CalculateCalendar(6, first_day, 30);
break;
}
case 7: {
CalculateCalendar(7, first_day, 31);
break;
}
case 8: {
CalculateCalendar(8, first_day, 31);
break;
}
case 9: {
CalculateCalendar(9, first_day, 30);
break;
}
case 10: {
CalculateCalendar(10, first_day, 31);
break;
}
case 11: {
CalculateCalendar(11, first_day, 30);
break;
}
case 12: {
CalculateCalendar(12, first_day, 31);
break;
}
}
}
public void CalculateCalendar(int month_no, int week_no, int month_days) {
int i, s = 0;
int currentDay;
if (this.mDay == 0) {
mDay = 1;
currentDay = HoyahCalendar.mDay;
} else {
currentDay = this.mDay;
}
for (i = 0; i < week_no; i++)
HoyahCalendar.a[i / 7][i % 7] = "";
for (i = week_no; i < week_no + month_days; i++) {
s = i - week_no + 1;
HoyahCalendar.a[i / 7][i % 7] = String.valueOf(s);
if (s == currentDay && HoyahCalendar.currentIndex == -1) {
HoyahCalendar.currentIndex = i / 7;
}
}
for (i = 0; i < 7; i++) {
if (HoyahCalendar.a[HoyahCalendar.currentIndex][i] == null) {
HoyahCalendar.a[0][i] = "";
} else {
HoyahCalendar.a[0][i] =
HoyahCalendar.a[HoyahCalendar.currentIndex][i];
}
}
for (i = week_no + month_days; i < 42; i++)
HoyahCalendar.a[i / 7][i % 7] = "";
}
}

No comments:

Post a Comment