Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ Core » Very need function Age.
Very need function Age. [message #19561] Tue, 16 December 2008 01:26 Go to next message
sergeynikitin is currently offline  sergeynikitin
Messages: 748
Registered: January 2008
Location: Moscow, Russia
Contributor

Simple function Age (whole years between 2 dates) used in any projects. Maybe include this function in TimeDate.cpp ?

SergeyNikitin<U++>( linux, wine )
{
    under( Ubuntu || Debian || Raspbian );
}
Re: Very need function Age. [message #19562 is a reply to message #19561] Tue, 16 December 2008 04:52 Go to previous messageGo to next message
sergeynikitin is currently offline  sergeynikitin
Messages: 748
Registered: January 2008
Location: Moscow, Russia
Contributor

Code of function
int Age(Date date1, Date date2) {
	Date date_t;
	if (date1 > date2) {
		date_t = date2;
		date2 = date1;
		date1 = date_t;
	}
	if (date2.month > date1.month) return date2.year - date1.year;
	else if  (date2.month < date1.month) return date2.year - date1.year - 1;
	else if  (date2.month == date1.month) {
		if (date2.day >= date1.day) return date2.year - date1.year;
		else if  (date2.day < date1.day) return date2.year - date1.year - 1;
	}
	return -1;
}


SergeyNikitin<U++>( linux, wine )
{
    under( Ubuntu || Debian || Raspbian );
}
Re: Very need function Age. [message #19563 is a reply to message #19562] Tue, 16 December 2008 08:34 Go to previous messageGo to next message
tojocky is currently offline  tojocky
Messages: 607
Registered: April 2008
Location: UK
Contributor

May be:
int AgeYears(Date date1, Date date2) {
	int sign=1;
	if (date1 > date2) sign = -1;
	int age_years = sign*(date2.year - date1.year);
	int month_dif = sign*(date2.month - date1.month)
	if ((month_dif < 0)||((month_dif == 0)&&(sign*(date2.day - date1.day) < 0))) age_years--;
	return age_years;
}

?
tojocky

[Updated on: Tue, 16 December 2008 08:45]

Report message to a moderator

Re: Very need function Age. [message #19565 is a reply to message #19563] Tue, 16 December 2008 13:29 Go to previous message
sergeynikitin is currently offline  sergeynikitin
Messages: 748
Registered: January 2008
Location: Moscow, Russia
Contributor

tojocky wrote on Tue, 16 December 2008 10:34

May be:
int AgeYears(Date date1, Date date2) {
	int sign=1;
	if (date1 > date2) sign = -1;
	int age_years = sign*(date2.year - date1.year);
	int month_dif = sign*(date2.month - date1.month)
	if ((month_dif < 0)||((month_dif == 0)&&(sign*(date2.day - date1.day) < 0))) age_years--;
	return age_years;
}

?
tojocky


Maybe. It doesn't matter. Last time I use this function anywhere.
This function very is often used.

So it was a request to the developers of inclusion in the assembly.


SergeyNikitin<U++>( linux, wine )
{
    under( Ubuntu || Debian || Raspbian );
}
Previous Topic: Console Application NOT WORKS!! And still not works!
Next Topic: GetUserName fails on WinXP/MinGW
Goto Forum:
  


Current Time: Sun Apr 28 18:47:43 CEST 2024

Total time taken to generate the page: 0.03967 seconds