Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2012, 00:50   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Я обращался к тем у кого уже имеется данная программа или кто знает как ее написать.
да. я знаю как эту программу написать. и множеством разных способов.

и я Вам уже рассказал, как решить вашу проблему самым простым способом. Потребуется написать всего ОДНУ строчку кода.
(рекомендую перечитывать мой пост #9 до полного просветления...)


Если это вызывает какие-то проблемы, то извините, но я вряд ли могу Вам ещё чем-то помочь...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.04.2012, 08:12   #12
FiBonnaci
Новичок
Джуниор
 
Регистрация: 18.04.2012
Сообщений: 1
По умолчанию

есть такая же тока на c++

Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>

struct Data{
	int day;
	int month;
	int year;
};


bool isYearIsLeap(int my_year) {
 //return (my_year%4 == 0 && my_year%4000 != 0 && (my_year%100 != 0) || (my_year%400 == 0));
 if ((my_year%4==0) & (my_year%100!=0)){
  return true;
 } else  if ((my_year%4==0) & (my_year%100==0) & (my_year%400==0)){
  return true;
 }else {
  return false;
 }


}


int getDayinMonth(int my_month, int my_year) {
	int num_days;

	switch (my_month) {
	case 1 :
	case 3 :
	case 5 :
	case 7 :
	case 8 :
	case 10: 
	case 12:
		num_days = 31;
		break;
	case 4 :
	case 6 :
	case 9 :
	case 11:
		num_days = 30;
		break;
	case 2 :
		num_days = 28 + int(isYearIsLeap(my_year));
		break;
	}
	return num_days;
}

bool validData (Data& my_data) {
	if (my_data.day < 1 || my_data.month > 12) {
		return false;
	} else {
		switch (my_data.month) {
		case 1 :
		case 3 :
		case 5 :
		case 7 :
		case 8 :
		case 10: 
		case 12:
		case 4 :
		case 6 :
		case 9 :
		case 11:
		case 2 :
			return (my_data.day <= getDayinMonth(my_data.month, my_data.year));
			break;

		}

	}
}


long int dateToNumber (Data& my_data) {

	int month = my_data.month, day = my_data.day, year = my_data.year;
	long  int var1, var2, var3;

	if (month > 2) {
		month -= 3;
	} else {
		month += 9;
		year--;
	}

	var1 = 146097 * (year/100) / 4;
	var2 = 1461 * (year%100) / 4;
	var3 = (153 * month + 2) / 5 + day + 1721119;

	return var1 + var2 + var3;
} 

Data NumberToDate (long long int my_num, Data& my_data) {
	Data mdata;
	long long int l,j,i,n;

	l = my_num + 68569;
	n = ( 4 * l ) / 146097;
	l = l - ( 146097 * n + 3 ) / 4;
	i = ( 4000 * ( l + 1 ) ) / 1461001;
	l = l - ( 1461 * i ) / 4 + 31;
	j = ( 80 * l ) / 2447;
	my_data.day = l - ( 2447 * j ) / 80;
	l = j / 11;
	my_data.month = j + 2 - ( 12 * l );
	my_data.year = 100 * ( n - 49 ) + i + l;


	printf ("%d\n%d\n%d\n", my_data.day, my_data.month, my_data.year);
	mdata = my_data;
	return mdata;
}


void vvod(Data& p) {
	scanf ("%d\n%d\n%d", &p.day, &p.month, &p.year);
}

void vivod(Data& p) {
	printf ("%d\n%d\n%d", p.day, p.month, p.year);
}

int main()
{
	Data d, d1;
	int number;
	vvod(d);

	if (validData(d) == true) {
		printf ("\n%d\n%d\n%d", d.day, d.month, d.year);
		printf ("\nPojalysta vvedite kol-vo dney, kotorie nado pribavlyat`");
		scanf ("%d", &number);
		printf("\n%i\n", dateToNumber(d));
		NumberToDate(dateToNumber(d) + number, d1);

	} else {
		printf ("vedennaya data nekorektna... ");
	}

	getch();
	return 0;
посмотри как работает, если c++ знаешь
FiBonnaci вне форума Ответить с цитированием
Старый 14.12.2022, 18:55   #13
Diomax
Новичок
Джуниор
 
Регистрация: 23.07.2022
Сообщений: 2
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=IntToStr(Abs(trunc(Date TimePicker1.Date) - trunc(DateTimePicker2.Date)));
end;
IntToStr надо.
Diomax вне форума Ответить с цитированием
Старый 14.12.2022, 18:56   #14
Diomax
Новичок
Джуниор
 
Регистрация: 23.07.2022
Сообщений: 2
По умолчанию

Diomax,
Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы самостоятельно что-то делать собираетесь?!
Запустить Delphi, создать новое приложение (New Application),
кинуть на форму два TDateTimePicker - для задания дат,
один TEdit - для отображения результата
одну кнопку TButton для выполнения вычисления.
и код на кнопку:
Код:
begin
 Edit1.Text := abs( trunc(datetimepicker1.date) - trunc(datetimepicker2.date) );
end;
это сложно?!

тогда Вам в раздел Фриланс
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:=IntToStr(Abs(trunc(Date TimePicker1.Date) - trunc(DateTimePicker2.Date)));
end;
IntToStr надо.
Diomax вне форума Ответить с цитированием
Старый 15.12.2022, 11:36   #15
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

На рекорд некропостинга идёшь? Смотрел дату последнего поста? Больше 10 лет...
Да, без новичков как-то скучнее было бы на форуме.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны a1,b1,c1, и a2,b2,c2 которые обозначают две даты. Нужно вычислить кол-во дней между этими датами Рафиль Паскаль, Turbo Pascal, PascalABC.NET 6 21.10.2011 10:34
Выборка между датами!(between) Alex Jordan БД в Delphi 2 31.05.2011 19:37
интервал между датами andrenisimus БД в Delphi 8 28.10.2010 14:05
С++: найти число дней между 2 датами kissel Помощь студентам 2 15.03.2009 17:18
Разница между датами deenka БД в Delphi 3 31.01.2008 13:21