Beispiel #1
0
int date::getnumsummertimedays() const
{
	int years, zera, summertime = 0, cnt = 0;

	for (int i = 3; i <= 10; i++)
	{
		zera = getdayofweek(year, i, 31);

		switch (i)
		{
		case 3:
			for (int j = 31; j >= 1; j--, zera--, cnt++)
			{
				if (zera == 0)
				{
					summertime += cnt;
					cnt = 0;
					break;
				}
			}
			break;
		case 5:
		case 7:
		case 8:
			for (int j = 1; j <= 31; j++)
				summertime++;
			break;
		case 10:
			for (int j = 31; j >= 1; j--, zera--)
			{
				if (zera == 0)
				{
					cnt = j;
					break;
				}
			}
			summertime += cnt;
			break;
		case 4:
		case 6:
		case 9:
			for (int j = 1; j <= 30; j++)
				summertime++;
			break;
		}
	}
	return summertime;
}
void dialCalendar::RefreshCalendar(void) {
	BString tmp;
	int d = getdayofweek(year,month,1);
	int m = daysinmonth(year,month);
	int i = 0;
	int j = 0;
	int k = 1;
	// 1st line
	while (i<d) {
		caldaytab[i][j] = -1;
		caltab[i][j]->SetLabel("");
		caltab[i][j]->SetEnabled(false);
		i++;
	};
	// next lines
	while (k<=m) {
		tmp = ""; tmp << k;
		caldaytab[i][j] = k;
		caltab[i][j]->SetLabel(tmp.String());
		caltab[i][j]->SetEnabled(true);
		i++; k++;
		if (i>=7) {
			i=0; j++;
		}
	}
	// finish last lines
	while (j<6) {
		caldaytab[i][j] = -1;
		caltab[i][j]->SetLabel("");
		caltab[i][j]->SetEnabled(false);
		i++;
		if (i>=7) {
			i=0; j++;
		}
	}
	monthyear->SetText(makeDateString());
	this->UpdateIfNeeded();
}
Beispiel #3
0
int date::getnumholidays() const
{
	int years, zera, holidays = 0;

	for (int i = 1; i <= 12; i++)
	{
		zera = getdayofweek(year, i, 1);

		switch (i)
		{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			for (int j = 1; j <= 31; j++)
			{
				if ((i == 1 && j == 1))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				else if ((i == 3 && j == 1))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				else if ((i == 5 && j == 5))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				else if ((i == 5 && j == 15))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				else if ((i == 7 && j == 17))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				else if ((i == 8 && j == 15))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				else if ((i == 10 && j == 3))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				else if ((i == 12 && j == 25))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				if (zera == 0 || zera == 6)
					holidays++;
				zera++;
				if (zera > 6)
					zera = 0;
			}
			break;
		case 2:
			for (int j = 1; j <= 28 + isleapyear(); j++)
			{
				if ((i == 2 && (j == 1 || j == 2 || j == 3)))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				if (zera == 0 || zera == 6)
					holidays++;
				zera++;
				if (zera > 6)
					zera = 0;
			}
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			for (int j = 1; j <= 30; j++)
			{
				if ((i == 6 && j == 6))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				else if ((i == 9 && (j == 15 || j == 16 || j == 17)))
				{
					if (zera != 0 && zera != 6)
						holidays++;
				}
				if (zera == 0 || zera == 6)
					holidays++;
				zera++;
				if (zera > 6)
					zera = 0;
			}
			break;
		}
	}
	return holidays;
}
Beispiel #4
0
void date::printcalendatofmonth() const
{
	int zera;

	cout << year << " " << month << endl;

	zera = getdayofweek(year, month, 1);

	switch (month)
	{
	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
		for (int j = zera; j > 0; j--)
			cout << 0 << " ";
		for (int j = 1; j <= 31; j++)
		{
			cout << j << " ";
			zera++;
			if (zera > 6 && j != 31)
			{
				cout << endl;
				zera = 0;
			}
		}
		for (; zera < 7; zera++)
			cout << 0 << " ";
		break;
	case 2:
		for (int j = zera; j > 0; j--)
			cout << 0 << " ";
		for (int j = 1; j <= 28 + isleapyear(); j++)
		{
			cout << j << " ";
			zera++;
			if (zera > 6 && j != 28 + isleapyear())
			{
				cout << endl;
				zera = 0;
			}
		}
		for (; zera < 7; zera++)
			cout << 0 << " ";
		break;
	case 4:
	case 6:
	case 9:
	case 11:
		for (int j = zera; j > 0; j--)
			cout << 0 << " ";
		for (int j = 1; j <= 30; j++)
		{
			cout << j << " ";
			zera++;
			if (zera > 6 && j != 30)
			{
				cout << endl;
				zera = 0;
			}
		}
		for (; zera < 7; zera++)
			cout << 0 << " ";
		break;
	}
}