Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace oop1
- {
- //class Data
- //{
- // //stato interno (variabili)
- // int gg = 1, mm=1, aa=1; //field (campo)
- // //metodi (funzioni)
- // static bool Bisestile(int anno)
- // {
- // return anno % 400 == 0 || (anno % 4 == 0 && anno % 100 != 0);
- // }
- // static int GiorniAnno(int anno)
- // { return 365 + (Bisestile(anno) ? 1 : 0); }
- // static int GiorniMese(int mese, int anno) //parametri formali
- // {
- // switch (mese)
- // {
- // case 4:
- // case 6:
- // case 9:
- // case 11:
- // return 30;
- // case 2:
- // return 28 + (anno % 400 == 0 || (anno % 4 == 0 && anno % 100 != 0) ? 1 : 0);
- // default:
- // return 31;
- // }
- // }
- // static bool DataCorretta(int g, int m, int a)
- // {
- // return a > 0 && m > 0 && m < 13 && g > 0 && g <= GiorniMese(m, a);
- // }
- // static int DifferenzaDateInGiorni(int g1, int m1, int a1, int g2, int m2, int a2)
- // {
- // if (m1 == m2 && a1 == a2) return Math.Abs(g2 - g1);
- // //se non in ordine cronologico, inverti le date
- // if (a1 > a2 || (a1 == a2 && m1 > m2))
- // {
- // Scambia(ref g1, ref g2); Scambia(ref m1, ref m2); Scambia(ref a1, ref a2);
- // }
- // int differenza = GiorniMese(m1, a1) - g1; //a fine mese
- // //sommo i giorni dei mesi intermedi
- // if (a1 == a2)
- // for (int mese = m1 + 1; mese < m2; mese++) differenza += GiorniMese(mese, a1);
- // else
- // {
- // //mesi anno di partenza fino a fine anno
- // for (int mese = m1 + 1; mese <= 12; mese++) differenza += GiorniMese(mese, a1);
- // //anni intermedi
- // for (int anno = a1 + 1; anno < a2; anno++) differenza += GiorniAnno(anno);
- // //mesi anno finale escluso ultimo
- // for (int mese = 1; mese < m2; mese++) differenza += GiorniMese(mese, a2);
- // }
- // //sommo i giorni restanti
- // return differenza + g2;
- // }
- // static void Scambia(ref int a, ref int b)
- // {
- // int temp = a; a = b; b = temp;
- // }
- //}
- class Data
- {// membri interni
- //field
- private int g = 1;
- private int m = 1;
- private int a = 1;
- //metodi
- public int GetGiorno() //getter
- {
- return g;
- }
- public bool SetGiorno(int nuovo) //setter
- {
- if (nuovo > GiorniMese())
- return false;
- else
- {
- g = nuovo;
- return true;
- }
- }
- int GiorniMese() //parametri formali
- {
- switch (m)
- {
- case 4:
- case 6:
- case 9:
- case 11:
- return 30;
- case 2:
- return 28 + (a % 400 == 0 || (a % 4 == 0 && a % 100 != 0) ? 1 : 0);
- default:
- return 31;
- }
- }
- }
- class Program
- {
- static bool Bisestile(int anno)
- {
- return anno % 400 == 0 || (anno % 4 == 0 && anno % 100 != 0);
- }
- static public int DifferenzaGiorni3(int g1, int m1, int a1, int g2, int m2, int a2)
- {
- int[] days = new int[] { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 };
- int y, n1, n2;
- y = a1 - 1;
- n1 = y * 365 + y / 4 - y / 100 + y / 400 + days[m1 - 1] + g1 + (Bisestile(a1) && m1 > 2 ? 0 : -1);
- y = a2 - 1;
- n2 = y * 365 + y / 4 - y / 100 + y / 400 + days[m2 - 1] + g2 + (Bisestile(a2) && m2 > 2 ? 0 : -1);
- return Math.Abs(n2 - n1);
- }
- static public int DifferenzaGiorni4(int g1, int m1, int a1, int g2, int m2, int a2)
- {
- int[] days = new int[] { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
- int y, n1, n2;
- y = a1 - 1;
- n1 = y * 365 + y / 4 - y / 100 + y / 400 + days[m1 - 1] + g1 + (Bisestile(a1) && m1 > 2 ? 0 : -1);
- y = a2 - 1;
- n2 = y * 365 + y / 4 - y / 100 + y / 400 + days[m2 - 1] + g2 + (Bisestile(a2) && m2 > 2 ? 0 : -1);
- return Math.Abs(n2 - n1);
- }
- static void Main(string[] args)
- {
- Data d1 = new Data();
- Console.WriteLine(d1.GetGiorno());
- if (d1.SetGiorno(45))
- Console.WriteLine("Data modificata!");
- else
- Console.WriteLine("Giorno non valido, data NON modificata ...");
- d1.SetGiorno(12);
- //d1.GetGiorno = 12;
- int n = 34 + d1.GetGiorno() * 2;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement