Advertisement
kot025

HW - DegreeValue.cs

Jun 12th, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.60 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApplicationHW
  8. {
  9.     class DegreeValue                           /// программа еще не готова
  10.     {
  11.         int _degrees;
  12.         int _minutes;
  13.         int _seconds;
  14.  
  15.         public int Degrees
  16.         {
  17.             get { return _degrees; }
  18.             set
  19.             {
  20.                 if (value >= 0)
  21.                 {
  22.                     _degrees = value % 360;
  23.                 }
  24.                 else
  25.                 {
  26.                     int num = Math.Abs(value) % 360;
  27.                     if (num>0)
  28.                     {
  29.                         _degrees = 360 - num;
  30.                     }
  31.                 }
  32.             }
  33.         }
  34.         public int Minutes
  35.         {
  36.             get { return _minutes; }
  37.             set
  38.             {
  39.                 if (value >= 0)
  40.                 {
  41.                     _minutes = value % 60;
  42.                     Degrees += value / 60;
  43.                 }
  44.                 else
  45.                 {
  46.                     Degrees -= Math.Abs(value) / 60;
  47.                     int num = Math.Abs(value) % 60;
  48.                     if (num > 0)
  49.                     {
  50.                         _minutes = 60 - num;
  51.                         Degrees--;
  52.                     }
  53.                 }
  54.             }
  55.         }
  56.         public int Seconds
  57.         {
  58.             get { return _seconds;}
  59.             set
  60.             {
  61.                 if (value >= 0)
  62.                 {
  63.                     _seconds = value % 60;
  64.                     Minutes += value / 60;
  65.                 }
  66.                 else
  67.                 {
  68.                     Minutes -= Math.Abs(value) / 60;
  69.                     int num = Math.Abs(value) % 60;
  70.                     if (num > 0)
  71.                     {
  72.                         _seconds = 60 - num;
  73.                         Minutes--;
  74.                     }
  75.                 }
  76.             }
  77.         }
  78.  
  79.         public DegreeValue()
  80.         {
  81.             Degrees = 0;
  82.             Minutes = 0;
  83.             Seconds = 0;
  84.         }
  85.         public DegreeValue(int degrees)
  86.         {
  87.             Degrees = degrees;
  88.             //Minutes = 0;
  89.             //Seconds = 0;
  90.         }
  91.         public DegreeValue(int degrees, int minutes)
  92.         {
  93.             Degrees = degrees;
  94.             Minutes = minutes;
  95.             //Seconds = 0;
  96.         }
  97.         public DegreeValue(int degrees, int minutes, int seconds)
  98.         {
  99.             Degrees = degrees;
  100.             Minutes = minutes;
  101.             Seconds = seconds;
  102.         }
  103.  
  104.         public static DegreeValue operator -(DegreeValue d1, DegreeValue d2)
  105.         {
  106.             DegreeValue res = new DegreeValue();
  107.             int sec_1 = d1.Degrees * 3600 + d1.Minutes * 60 + d1.Seconds;
  108.             int sec_2 = d2.Degrees * 3600 + d2.Minutes * 60 + d2.Seconds;
  109.             res.Seconds = sec_1 - sec_2;
  110.             return res;
  111.         }
  112.         public static DegreeValue operator +(DegreeValue d1, DegreeValue d2)
  113.         {
  114.             DegreeValue res = new DegreeValue();
  115.             int sec_1 = d1.Degrees * 3600 + d1.Minutes * 60 + d1.Seconds;
  116.             int sec_2 = d2.Degrees * 3600 + d2.Minutes * 60 + d2.Seconds;
  117.             res.Seconds = sec_1 + sec_2;
  118.             return res;
  119.         }
  120.         public static DegreeValue operator *(DegreeValue d1, int factor)
  121.         {
  122.             DegreeValue res = new DegreeValue();
  123.             int sec_1 = d1.Degrees * 3600 + d1.Minutes * 60 + d1.Seconds;
  124.             res.Seconds = sec_1 * factor;
  125.             return res;
  126.         }
  127.         public static DegreeValue operator *(int factor, DegreeValue d1 )
  128.         {
  129.             DegreeValue res = new DegreeValue();
  130.             int sec_1 = d1.Degrees * 3600 + d1.Minutes * 60 + d1.Seconds;
  131.             res.Seconds = sec_1 * factor;
  132.             return res;
  133.         }
  134.         public static DegreeValue operator /(DegreeValue d1, int devisor)
  135.         {
  136.             DegreeValue res = new DegreeValue();
  137.             int sec_1 = d1.Degrees * 3600 + d1.Minutes * 60 + d1.Seconds;
  138.             res.Seconds = sec_1 / devisor;
  139.             return res;
  140.         }
  141.         public void Show()
  142.         {
  143.             Console.WriteLine("{0} {1}' {2}\"", Degrees, Minutes, Seconds);
  144.         }
  145.         public int ToSeconds()
  146.         {
  147.             return Degrees * 3600 + Minutes * 60 + Seconds;
  148.         }
  149.         public override string ToString()
  150.         {
  151.             return String.Format("{0} {1}' {2}\"", Degrees, Minutes, Seconds);
  152.         }
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement