Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplicationHW
- {
- class DegreeValue /// программа еще не готова
- {
- int _degrees;
- int _minutes;
- int _seconds;
- public int Degrees
- {
- get { return _degrees; }
- set
- {
- if (value >= 0)
- {
- _degrees = value % 360;
- }
- else
- {
- int num = Math.Abs(value) % 360;
- if (num>0)
- {
- _degrees = 360 - num;
- }
- }
- }
- }
- public int Minutes
- {
- get { return _minutes; }
- set
- {
- if (value >= 0)
- {
- _minutes = value % 60;
- Degrees += value / 60;
- }
- else
- {
- Degrees -= Math.Abs(value) / 60;
- int num = Math.Abs(value) % 60;
- if (num > 0)
- {
- _minutes = 60 - num;
- Degrees--;
- }
- }
- }
- }
- public int Seconds
- {
- get { return _seconds;}
- set
- {
- if (value >= 0)
- {
- _seconds = value % 60;
- Minutes += value / 60;
- }
- else
- {
- Minutes -= Math.Abs(value) / 60;
- int num = Math.Abs(value) % 60;
- if (num > 0)
- {
- _seconds = 60 - num;
- Minutes--;
- }
- }
- }
- }
- public DegreeValue()
- {
- Degrees = 0;
- Minutes = 0;
- Seconds = 0;
- }
- public DegreeValue(int degrees)
- {
- Degrees = degrees;
- //Minutes = 0;
- //Seconds = 0;
- }
- public DegreeValue(int degrees, int minutes)
- {
- Degrees = degrees;
- Minutes = minutes;
- //Seconds = 0;
- }
- public DegreeValue(int degrees, int minutes, int seconds)
- {
- Degrees = degrees;
- Minutes = minutes;
- Seconds = seconds;
- }
- public static DegreeValue operator -(DegreeValue d1, DegreeValue d2)
- {
- DegreeValue res = new DegreeValue();
- int sec_1 = d1.Degrees * 3600 + d1.Minutes * 60 + d1.Seconds;
- int sec_2 = d2.Degrees * 3600 + d2.Minutes * 60 + d2.Seconds;
- res.Seconds = sec_1 - sec_2;
- return res;
- }
- public static DegreeValue operator +(DegreeValue d1, DegreeValue d2)
- {
- DegreeValue res = new DegreeValue();
- int sec_1 = d1.Degrees * 3600 + d1.Minutes * 60 + d1.Seconds;
- int sec_2 = d2.Degrees * 3600 + d2.Minutes * 60 + d2.Seconds;
- res.Seconds = sec_1 + sec_2;
- return res;
- }
- public static DegreeValue operator *(DegreeValue d1, int factor)
- {
- DegreeValue res = new DegreeValue();
- int sec_1 = d1.Degrees * 3600 + d1.Minutes * 60 + d1.Seconds;
- res.Seconds = sec_1 * factor;
- return res;
- }
- public static DegreeValue operator *(int factor, DegreeValue d1 )
- {
- DegreeValue res = new DegreeValue();
- int sec_1 = d1.Degrees * 3600 + d1.Minutes * 60 + d1.Seconds;
- res.Seconds = sec_1 * factor;
- return res;
- }
- public static DegreeValue operator /(DegreeValue d1, int devisor)
- {
- DegreeValue res = new DegreeValue();
- int sec_1 = d1.Degrees * 3600 + d1.Minutes * 60 + d1.Seconds;
- res.Seconds = sec_1 / devisor;
- return res;
- }
- public void Show()
- {
- Console.WriteLine("{0} {1}' {2}\"", Degrees, Minutes, Seconds);
- }
- public int ToSeconds()
- {
- return Degrees * 3600 + Minutes * 60 + Seconds;
- }
- public override string ToString()
- {
- return String.Format("{0} {1}' {2}\"", Degrees, Minutes, Seconds);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement