//---------------------------------------------------------------------------
#include <vcl.h>
#include <math.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int d,m,y,day,a,n;
int d2,m2,y2;
int F1,F2;
d=StrToInt(Edit1->Text);
m=StrToInt(Edit2->Text);
y=StrToInt(Edit3->Text);
d2=StrToInt(Edit4->Text);
m2=StrToInt(Edit5->Text);
y2=StrToInt(Edit6->Text);
if(RadioButton1->Checked) //переключатель "Узнать День Недели"
{
a=(14-m)/12;
y=y-a;
n=m+12*a-2;
day=(7000+(d+y+y/4-y/100+y/400+(31*n)/12))%7;
switch(day)
{ case 0: Label10->Caption="Воскресенье"; break;
case 1: Label10->Caption="Понедельник"; break;
case 2: Label10->Caption="Вторник"; break;
case 3: Label10->Caption="Среда"; break;
case 4: Label10->Caption="Четверг"; break;
case 5: Label10->Caption="Пятница"; break;
case 6: Label10->Caption="Суббота"; break;
}
}
else //переключатель "Узнать разницу между датами"
{
try{
if (m==1 || m==2)
{
F1=365*y+d+31*(m-1)+int((y-1)/4)-int(3/4*(int(y-1)/100+1));
}
else
{
F1=365*y+d+31*(m-1)-int(0.4*m+2.3)+int(y/4)-int(3/4*(int(y/100)+1));
}
if (m2==1 || m2==2)
{
F2=365*y2+d2+31*(m2-1)+int((y2-1)/4)-int(3/4*(int(y2-1)/100+1));
}
else
{ F2=365*y2+d2+31*(m2-1)-int(0.4*m2+2.3)+int(y2/4)-int(3/4*(int(y2/100)+1));
}
}
catch (EInvalidOp &e)
{
ShowMessage ("Необходимо ввеси данные");
}
}
Label10->Caption=abs(F1-F2);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
Label10->Caption= " ";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::RadioButton2Click(TObject *Sender)
{
Label10->Caption= " ";
}
//---------------------------------------------------------------------------
Borland C++ Builder
Программа должна вычислять день недели и разницу между двумя датами. В консоле я ее уже написал, но вот с формами есть проблемы.
if (RadioButton1=Checked), то выполняется 1-е задание. Данные берутся с Edit1,Edit2,Edit3. А Edit4,Edit5,Edit6- становятся недоступными для заполнения.
else
Все доступно..но с этим я разобрался.
Еще после переключения RadioButton1 и RadioButton2, нужно чтоб все поля очищялись.
2-а дня назад все работала, но сейчас почему то 1-е задание не работает, незнаю даже почему.
Помогите чем можете :(
Исходник:
Код:
Код:
void __fastcall TForm1::RadioButton1Click(TObject *Sender)
{
Label10->Caption= " ";
Edit1 -> Clear();
Edit2 -> Clear();
Edit3 -> Clear();
Edit4 -> Clear();
Edit5 -> Clear();
Edit6 -> Clear();
}
{
Label10->Caption= " ";
Edit1 -> Clear();
Edit2 -> Clear();
Edit3 -> Clear();
Edit4 -> Clear();
Edit5 -> Clear();
Edit6 -> Clear();
}
и для RadioButton2Click аналогично.
подскажите в чем дело!?
anty, кинь исходники своей программы, доведу её до ума.
Label - ы в массив :
Код:
char* day[7] = {"Понедельник","Вторник"..... и т.д. }
TLabel label[7];
for(int i=0; i<7; i++)
{
label = new TLabel(this);
label->Caption = day[abs(F1-F2)];
}
TLabel label[7];
for(int i=0; i<7; i++)
{
label = new TLabel(this);
label->Caption = day[abs(F1-F2)];
}
було бы веселей