//---------------------------------------------------------------------------
/*
程序使用了3个Edit控件,分别存储月、日、年。一个Button1按钮,当按下时
首先判断数据格式是否正确,然后计算所在的天数,并且把结果在Label4中显示出来。
*/
#include
#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 month,day,year; //存储月、日、年所需的整型变量
int num=0; //num存储最终的结果
int i;
bool error=false; //逻辑判断,用于判断输入的格式是否合法
month=StrToInt(Edit1->Text);
day=StrToInt(Edit2->Text);
year=StrToInt(Edit3->Text);
if(year>9999||year<1000)error=true; //判断年份是否合法,必须是4位数
if(month<1||month>12)error=true; //判断月份是否合法,不能超过12
//下面的switch判断日期是否合法
switch(month)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
if(day>31)error=true;
break;
case 4:case 6:case 9:case 11:
if(day>30)error=true;
break;
case 2:
if((year%100!=0&&year%4==0)||year%400==0)
{
if(day>29)error=true;
}
else
{
if(day>28)error=true;
}
break;
}
//如果格式正确则计算,否则打印错误消息
if(!error)
{
for(i=1;i {
switch(i)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12: //31天的月份
num+=31;
break;
case 4:case 6:case 9:case 11: //30天的月份
num+=30;
break;
case 2: //2月的日期数需要判断平闰年
if((year%100!=0&&year%4==0)||year%400==0) //判断是否为闰年的条件
num+=29;
else
num+=28;
break;
}
}
num+=day;
Label4->Caption="第"+IntToStr(num)+"天";
}
else
{
Label4->Caption="输入错误!";
}
}
//---------------------------------------------------------------------------
--------------------next---------------------
#include
using namespace std;
int main()
{
int month,day,year,days_total,a,b;
bool error=true;
cout << "请输入日期(格式为:月 日 年):" << endl;
cin >> month >> day >> year;
//检验月份是否正确
if(month<0||month>12)
error=false;
//检验日期是否正确
switch(month)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
if(day>31||day<0)
error=false;
break;
case 4:case 6:case 9:case 11:
if(day>30||day<0)
error=false;
break;
case 2:
if((year%100!=0&&year%4==0)||year%400==0)
{
if(day>29||day<0)
error=false;
}
else
{
if(day>28||day<0)
error=false;
}
break;
}
//计算该日期是该年中的第几天
if(error==true)
{
if(month==1)
days_total=day;
else
if(month==2)
days_total=day;
else
if(month>2&&month<8)
{
a=month/2-1;
b=(month-1)/2-1;
if((year%100!=0&&year%4==0)||year%400==0)
{
days_total=60+a*31+b*30+day;
}
else
days_total=59+a*31+b*30+day;
}
else
if(month>7&&month<13)
{
a=(month-5)/2-1;
b=(month-6)/2-1;
if((year%100!=0&&year%4==0)||year%400==0)
{
days_total=213+a*31+b*30+day;
}
else
days_total=212+a*31+b*30+day;
}
cout << month << "月" << day << "日是" << year << "年的第" << days_total << "天。" << endl;
}
else
cout << "请输入正确的日期!" << endl;
return 0;
}
--------------------next---------------------
阅读(1107) | 评论(0) | 转发(0) |