2022-07-04 11:52:33 +02:00

123 lines
3.6 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Task4
{
internal class Program
{
static void Main(string[] args)
{
for (; ; )
{
Console.WriteLine("Welcome!");
int currentYear = DateTime.Now.Year;
Console.WriteLine("State your first name or enter \"q\" to exit");
var firstName = Console.ReadLine();
if (firstName == "q")
return;
Console.WriteLine("State your last name: ");
var lastName = Console.ReadLine();
if (lastName == "q")
return;
Console.WriteLine("State your year of birth with 4 digits: ");
int yearOfBirth;
// Cannot be born in the future or be above 100 years old
bool validYear(int year)
{
return year > currentYear - 100 && year <= currentYear;
}
while (!(int.TryParse(Console.ReadLine(), out yearOfBirth) && validYear(yearOfBirth)))
{
Console.WriteLine("Invalid year of birth try again");
}
var heartRates = new HeartRates(firstName, lastName, yearOfBirth, currentYear);
Console.WriteLine($"Hello {heartRates.FirstName} {heartRates.LastName}");
Console.WriteLine($"Your age is {heartRates.age()} and maximum heart rate is {heartRates.maxHeartRate()}");
Console.WriteLine($"Your target heart rate is between {heartRates.minTargetRange()} and {heartRates.maxTargetRange()}")
}
}
}
class HeartRates
{
private string _firstName;
private string _lastName;
private int _yearOfBirth;
private int _currentYear;
//private TargetRange _targetRange;
// private Tuple<int, int> _targetRange2;
//public struct TargetRange
//{
// private double _min;
// private double _max;
// public TargetRange(int age)
// : this()
// {
// double maxHeartrate = 220 - (double)age;
// _min = maxHeartrate * 0.5;
// _max = maxHeartrate * 0.85;
// }
// public double Min { get; }
// public double Max { get; }
//}
public HeartRates(string firstName,
string lastName,
int yearofBirth,
int currentYear)
{
_firstName = firstName;
_lastName = lastName;
_yearOfBirth = yearofBirth;
_currentYear = currentYear;
//_targetRange = new TargetRange(currentYear - yearofBirth);
}
public string FirstName
{
set { _firstName = value; }
get => _firstName;
}
public string LastName
{
set { _lastName = value; }
get => _lastName;
}
public int YearOfBirth { set; get; }
//public TargetRange PersonalTargetRange { get {return _targetRange;} }
public int age()
{
return _currentYear - _yearOfBirth;
}
public double maxHeartRate()
{
return 220 - (double)age();
}
public double minTargetRange()
{
return maxHeartRate() * 0.5;
}
public double maxTargetRange()
{
return maxHeartRate() * 0.85;
}
}
}