GregorianCalendar Classe

Definizione

Rappresenta il calendario gregoriano.

public ref class GregorianCalendar : System::Globalization::Calendar
public class GregorianCalendar : System.Globalization.Calendar
[System.Serializable]
public class GregorianCalendar : System.Globalization.Calendar
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class GregorianCalendar : System.Globalization.Calendar
type GregorianCalendar = class
    inherit Calendar
[<System.Serializable>]
type GregorianCalendar = class
    inherit Calendar
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type GregorianCalendar = class
    inherit Calendar
Public Class GregorianCalendar
Inherits Calendar
Ereditarietà
GregorianCalendar
Attributi

Esempio

Nell'esempio di codice seguente viene illustrato che DateTimeFormatInfo ignora la punteggiatura nel nome dell'era, solo se il calendario è gregoriano e le impostazioni cultura usano il nome dell'era "A.D.".

using namespace System;
using namespace System::Globalization;
using namespace System::Collections;
int main()
{
   
   // Creates strings with punctuation and without.
   String^ strADPunc = "A.D.";
   String^ strADNoPunc = "AD";
   String^ strCEPunc = "C.E.";
   String^ strCENoPunc = "CE";
   
   // Calls DTFI::GetEra for each culture that uses GregorianCalendar as the default calendar.
   Console::WriteLine( "            ----- AD -----  ----- CE -----" );
   Console::WriteLine( "CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR" );
   IEnumerator^ en = CultureInfo::GetCultures( CultureTypes::SpecificCultures )->GetEnumerator();
   while ( en->MoveNext() )
   {
      CultureInfo^ myCI = safe_cast<CultureInfo^>(en->Current);
      Console::Write( "{0, -12}", myCI );
      Console::Write( "{0,-7}{1,-9}", myCI->DateTimeFormat->GetEra( strADPunc ), myCI->DateTimeFormat->GetEra( strADNoPunc ) );
      Console::Write( "{0, -7}{1, -9}", myCI->DateTimeFormat->GetEra( strCEPunc ), myCI->DateTimeFormat->GetEra( strCENoPunc ) );
      Console::Write( "{0}", myCI->Calendar );
      Console::WriteLine();
   }
}

/*
This code produces the following output.  This output has been cropped for brevity.

            ----- AD -----  ----- CE -----
CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR
ar-SA       -1     -1       -1     -1       System.Globalization.HijriCalendar
ar-IQ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-EG       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-DZ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-MA       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-TN       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-OM       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-YE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-SY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-JO       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LB       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-KW       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-AE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-BH       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-QA       1      1        -1     -1       System.Globalization.GregorianCalendar
bg-BG       1      1        -1     -1       System.Globalization.GregorianCalendar
ca-ES       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-TW       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-CN       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-HK       1      1        -1     -1       System.Globalization.GregorianCalendar
zh-SG       1      1        -1     -1       System.Globalization.GregorianCalendar
zh-MO       1      1        -1     -1       System.Globalization.GregorianCalendar
cs-CZ       -1     -1       -1     -1       System.Globalization.GregorianCalendar
da-DK       1      1        -1     -1       System.Globalization.GregorianCalendar

*/
using System;
using System.Globalization;

public class SamplesGregorianCalendar  {

   public static void Main()  {

      // Creates strings with punctuation and without.
      String strADPunc = "A.D.";
      String strADNoPunc = "AD";
      String strCEPunc = "C.E.";
      String strCENoPunc = "CE";

      // Calls DTFI.GetEra for each culture that uses GregorianCalendar as the default calendar.
      Console.WriteLine( "            ----- AD -----  ----- CE -----" );
      Console.WriteLine( "CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR" );
      foreach ( CultureInfo myCI in CultureInfo.GetCultures( CultureTypes.SpecificCultures ) )  {
         Console.Write( "{0,-12}", myCI );
         Console.Write( "{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra( strADPunc ), myCI.DateTimeFormat.GetEra( strADNoPunc ) );
         Console.Write( "{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra( strCEPunc ), myCI.DateTimeFormat.GetEra( strCENoPunc ) );
         Console.Write( "{0}", myCI.Calendar );
         Console.WriteLine();
      }
   }
}

/*
This code produces the following output.  This output has been cropped for brevity.

            ----- AD -----  ----- CE -----
CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR
ar-SA       -1     -1       -1     -1       System.Globalization.HijriCalendar
ar-IQ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-EG       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-DZ       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-MA       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-TN       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-OM       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-YE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-SY       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-JO       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-LB       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-KW       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-AE       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-BH       1      1        -1     -1       System.Globalization.GregorianCalendar
ar-QA       1      1        -1     -1       System.Globalization.GregorianCalendar
bg-BG       1      1        -1     -1       System.Globalization.GregorianCalendar
ca-ES       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-TW       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-CN       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-HK       -1     -1       -1     -1       System.Globalization.GregorianCalendar
zh-SG       1      1        -1     -1       System.Globalization.GregorianCalendar
zh-MO       1      1        -1     -1       System.Globalization.GregorianCalendar
cs-CZ       -1     -1       -1     -1       System.Globalization.GregorianCalendar
da-DK       1      1        -1     -1       System.Globalization.GregorianCalendar

*/
Imports System.Globalization

Public Class SamplesGregorianCalendar

   Public Shared Sub Main()

      ' Creates strings with punctuation and without.
      Dim strADPunc As [String] = "A.D."
      Dim strADNoPunc As [String] = "AD"
      Dim strCEPunc As [String] = "C.E."
      Dim strCENoPunc As [String] = "CE"

      ' Calls DTFI.GetEra for each culture that uses GregorianCalendar as the default calendar.
      Console.WriteLine("            ----- AD -----  ----- CE -----")
      Console.WriteLine("CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR")
      Dim myCI As CultureInfo
      For Each myCI In  CultureInfo.GetCultures(CultureTypes.SpecificCultures)
         Console.Write("{0,-12}", myCI)
         Console.Write("{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra(strADPunc), myCI.DateTimeFormat.GetEra(strADNoPunc))
         Console.Write("{0,-7}{1,-9}", myCI.DateTimeFormat.GetEra(strCEPunc), myCI.DateTimeFormat.GetEra(strCENoPunc))
         Console.Write("{0}", myCI.Calendar)
         Console.WriteLine()
      Next myCI

   End Sub

End Class


'This code produces the following output.  This output has been cropped for brevity.
'
'            ----- AD -----  ----- CE -----
'CULTURE     PUNC   NO PUNC  PUNC   NO PUNC  CALENDAR
'ar-SA       -1     -1       -1     -1       System.Globalization.HijriCalendar
'ar-IQ       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-EG       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-LY       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-DZ       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-MA       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-TN       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-OM       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-YE       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-SY       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-JO       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-LB       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-KW       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-AE       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-BH       1      1        -1     -1       System.Globalization.GregorianCalendar
'ar-QA       1      1        -1     -1       System.Globalization.GregorianCalendar
'bg-BG       1      1        -1     -1       System.Globalization.GregorianCalendar
'ca-ES       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-TW       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-CN       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-HK       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'zh-SG       1      1        -1     -1       System.Globalization.GregorianCalendar
'zh-MO       1      1        -1     -1       System.Globalization.GregorianCalendar
'cs-CZ       -1     -1       -1     -1       System.Globalization.GregorianCalendar
'da-DK       1      1        -1     -1       System.Globalization.GregorianCalendar

Commenti

Il calendario gregoriano riconosce due era: B.C. o B.C.E., e A.D. o C.E. Questa implementazione della GregorianCalendar classe riconosce solo l'era corrente (A.D. o C.E.).

Nota

Per informazioni sull'uso della GregorianCalendar classe e delle altre classi di calendario in .NET Framework, vedere Uso dei calendari.

Un anno bisestile nel calendario gregoriano è definito come anno che è uniformemente divisibile da 4, a meno che non sia divisibile da 100. Tuttavia, gli anni che sono divisibili per 400 sono anni saltati. Ad esempio, l'anno 1900 non era un anno saltato, ma l'anno 2000 era. Un anno comune ha 365 giorni e un anno bisestile ha 366 giorni.

Il calendario gregoriano ha 12 mesi con 28-31 giorni ogni: gennaio (31 giorni), febbraio (28 o 29 giorni), marzo (31 giorni), aprile (30 giorni), maggio (30 giorni) 31 giorni), giugno (30 giorni), luglio (31 giorni), agosto (31 giorni), settembre (30 giorni), ottobre (31 giorni), novembre (30 giorni) e dicembre (31 giorni). Febbraio ha 29 giorni durante anni salti e 28 durante gli anni comuni.

Importante

Per impostazione predefinita, tutti i DateTime valori e esprimono date e DateTimeOffset ore nel calendario gregoriano.

Il calendario gregoriano è stato sviluppato come sostituzione del calendario Julian (rappresentato dalla JulianCalendar classe) ed è stato introdotto per la prima volta in un piccolo numero di culture il 15 ottobre 1582. Quando si usano date storiche che precedono l'adozione di un calendario gregoriano, è consigliabile usare il calendario originale se è disponibile in .NET Framework. Ad esempio, la Danimarca è cambiata dal calendario Julian al calendario gregoriano il 19 febbraio (nel calendario julian) o il 1 marzo (nel calendario gregoriano) del 1700. In questo caso, per le date prima dell'adozione del calendario gregoriano, è consigliabile usare il calendario Julian. Si noti tuttavia che nessuna cultura offre supporto intrinseco per la JulianCalendar classe. È necessario usare la JulianCalendar classe come calendario autonomo. Per altre informazioni, vedere Uso dei calendari.

Nell'esempio seguente viene illustrato che il 18 febbraio 1700 nel calendario Julian, che è l'ultimo giorno in cui il calendario julian è stato ufficialmente usato in Danimarca, è un giorno prima del 1° marzo 1700 nel calendario gregoriano.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");

      JulianCalendar jc = new JulianCalendar();
      DateTime lastDate = new DateTime(1700, 2, 18, jc);
      Console.WriteLine("Last date (Gregorian): {0:d}", lastDate);
      Console.WriteLine("Last date (Julian): {0}-{1}-{2}\n", jc.GetDayOfMonth(lastDate),
                        jc.GetMonth(lastDate), jc.GetYear(lastDate));

      DateTime firstDate = lastDate.AddDays(1);
      Console.WriteLine("First date (Gregorian): {0:d}", firstDate);
      Console.WriteLine("First date (Julian): {0}-{1}-{2}",  jc.GetDayOfMonth(firstDate),
                        jc.GetMonth(firstDate), jc.GetYear(firstDate));
   }
}
// The example displays the following output:
//       Last date (Gregorian): 28-02-1700
//       Last date (Julian): 18-2-1700
//
//       First date (Gregorian): 01-03-1700
//       First date (Julian): 19-2-1700
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      Thread.CurrentThread.CurrentCulture = New CultureInfo("da-DK")
      
      Dim jc As New JulianCalendar()
      Dim lastDate As New DateTime(1700, 2, 18, jc)
      Console.WriteLine("Last date (Gregorian): {0:d}", lastDate)
      Console.WriteLine("Last date (Julian): {0}-{1}-{2}", jc.GetDayOfMonth(lastDate),
                        jc.GetMonth(lastDate), jc.GetYear(lastDate))
      Console.WriteLine()
      
      Dim firstDate As DateTime = lastDate.AddDays(1)
      Console.WriteLine("First date (Gregorian): {0:d}", firstDate)
      Console.WriteLine("First date (Julian): {0}-{1}-{2}",  jc.GetDayOfMonth(firstDate),
                        jc.GetMonth(firstDate), jc.GetYear(firstDate))
   End Sub
End Module
' The example displays the following output:
'       Last date (Gregorian): 28-02-1700
'       Last date (Julian): 18-2-1700
'       
'       First date (Gregorian): 01-03-1700
'       First date (Julian): 19-2-1700

Ogni CultureInfo oggetto supporta un set di calendari. La Calendar proprietà restituisce il calendario predefinito per le impostazioni cultura e la OptionalCalendars proprietà restituisce una matrice contenente tutti i calendari supportati dalle impostazioni cultura. Per modificare il calendario usato da un CultureInfooggetto , l'applicazione può impostare la Calendar proprietà su un nuovo Calendaroggetto .

GetEraignora la punteggiatura nei nomi di era abbreviati, solo se è selezionata in DateTimeFormatInfo.Calendar e le GregorianCalendar impostazioni cultura usano "A.D". come nome dell'era, ovvero "A.D." equivale a "AD".

Costruttori

GregorianCalendar()

Inizializza una nuova istanza della classe GregorianCalendar utilizzando il valore GregorianCalendarTypes predefinito.

GregorianCalendar(GregorianCalendarTypes)

Inizializza una nuova istanza della classe GregorianCalendar con il valore GregorianCalendarTypes specificato.

Campi

ADEra

Rappresenta l'era corrente. Questo campo è costante.

CurrentEra

Rappresenta l'era corrente del calendario corrente. Il valore di questo campo è 0.

(Ereditato da Calendar)

Proprietà

AlgorithmType

Ottiene un valore che indica se il calendario corrente è solare, lunare o una combinazione di entrambi (lunisolare).

AlgorithmType

Ottiene un valore che indica se il calendario corrente è solare, lunare o una combinazione di entrambi (lunisolare).

(Ereditato da Calendar)
CalendarType

Ottiene o imposta il valore GregorianCalendarTypes che indica la versione della lingua dell'oggetto GregorianCalendar corrente.

DaysInYearBeforeMinSupportedYear

Ottiene il numero di giorni all'anno che precedono l'anno specificato dalla proprietà MinSupportedDateTime.

(Ereditato da Calendar)
Eras

Ottiene l'elenco delle ere in GregorianCalendar.

IsReadOnly

Ottiene un valore che indica se l'oggetto Calendar è in sola lettura.

(Ereditato da Calendar)
MaxSupportedDateTime

Ottiene la data e l'ora più recenti supportate dal tipo GregorianCalendar.

MaxSupportedDateTime

Ottiene la data e l'ora più recenti supportate dall'oggetto Calendar.

(Ereditato da Calendar)
MinSupportedDateTime

Ottiene la data e l'ora meno recenti supportate dal tipo GregorianCalendar.

MinSupportedDateTime

Ottiene la data e l'ora meno recenti supportate dall'oggetto Calendar.

(Ereditato da Calendar)
TwoDigitYearMax

Ottiene o imposta l'ultimo anno che, nell'intervallo di un secolo, può essere rappresentato da un anno a due cifre.

Metodi

AddDays(DateTime, Int32)

Restituisce un valore DateTime che rappresenta il numero di giorni specificato a partire dal valore DateTime specificato.

(Ereditato da Calendar)
AddHours(DateTime, Int32)

Restituisce un valore DateTime che rappresenta il numero di ore specificato a partire dal valore DateTime specificato.

(Ereditato da Calendar)
AddMilliseconds(DateTime, Double)

Restituisce un valore DateTime che rappresenta il numero di millisecondi specificato a partire dal valore DateTime specificato.

(Ereditato da Calendar)
AddMinutes(DateTime, Int32)

Restituisce un valore DateTime che rappresenta il numero di minuti specificato a partire dal valore DateTime specificato.

(Ereditato da Calendar)
AddMonths(DateTime, Int32)

Restituisce un valore DateTime che rappresenta il numero di mesi specificato a partire dal valore DateTime specificato.

AddSeconds(DateTime, Int32)

Restituisce un valore DateTime che rappresenta il numero di secondi specificato a partire dal valore DateTime specificato.

(Ereditato da Calendar)
AddWeeks(DateTime, Int32)

Restituisce un valore DateTime che rappresenta il numero di settimane specificato a partire dal valore DateTime specificato.

AddWeeks(DateTime, Int32)

Restituisce un valore DateTime che rappresenta il numero di settimane specificato a partire dal valore DateTime specificato.

(Ereditato da Calendar)
AddYears(DateTime, Int32)

Restituisce un valore DateTime che rappresenta il numero di anni specificato a partire dal valore DateTime specificato.

Clone()

Crea un nuovo oggetto che rappresenta una copia dell'oggetto Calendar corrente.

(Ereditato da Calendar)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetDayOfMonth(DateTime)

Restituisce il giorno del mese nel valore DateTime specificato.

GetDayOfWeek(DateTime)

Restituisce il giorno della settimana nel valore DateTime specificato.

GetDayOfYear(DateTime)

Restituisce il giorno dell'anno nell'oggetto DateTime specificato.

GetDaysInMonth(Int32, Int32)

Restituisce il numero di giorni nel mese e nell'anno specificati dell'era corrente.

(Ereditato da Calendar)
GetDaysInMonth(Int32, Int32, Int32)

Restituisce il numero di giorni nel mese specificato nell'anno specificato dell'era specificata.

GetDaysInYear(Int32)

Restituisce il numero di giorni nell'anno specificato dell'era corrente.

(Ereditato da Calendar)
GetDaysInYear(Int32, Int32)

Restituisce il numero di giorni nell'anno specificato dell'era specificata.

GetEra(DateTime)

Restituisce l'era nel valore DateTime specificato.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetHour(DateTime)

Restituisce il valore delle ore nel valore DateTime specificato.

(Ereditato da Calendar)
GetLeapMonth(Int32)

Calcola il mese intercalare per un anno specificato.

(Ereditato da Calendar)
GetLeapMonth(Int32, Int32)

Calcola il mese intercalare per un anno e un'era specificati.

GetLeapMonth(Int32, Int32)

Calcola il mese intercalare per un anno e un'era specificati.

(Ereditato da Calendar)
GetMilliseconds(DateTime)

Restituisce il valore dei millisecondi nel valore DateTime specificato.

(Ereditato da Calendar)
GetMinute(DateTime)

Restituisce il valore dei minuti nel valore DateTime specificato.

(Ereditato da Calendar)
GetMonth(DateTime)

Restituisce il mese nell'oggetto DateTime specificato.

GetMonthsInYear(Int32)

Restituisce il numero di mesi nell'anno specificato dell'era corrente.

(Ereditato da Calendar)
GetMonthsInYear(Int32, Int32)

Restituisce il numero di mesi nell'anno specificato dell'era specificata.

GetSecond(DateTime)

Restituisce il valore dei secondi nel valore DateTime specificato.

(Ereditato da Calendar)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
GetWeekOfYear(DateTime, CalendarWeekRule, DayOfWeek)

Restituisce la settimana dell'anno che comprende la data nell'oggetto DateTime specificato.

GetWeekOfYear(DateTime, CalendarWeekRule, DayOfWeek)

Restituisce la settimana dell'anno che comprende la data nel valore DateTime specificato.

(Ereditato da Calendar)
GetYear(DateTime)

Restituisce l'anno nel valore DateTime specificato.

IsLeapDay(Int32, Int32, Int32)

Determina se la data specificata nell'era corrente è un giorno intercalare.

(Ereditato da Calendar)
IsLeapDay(Int32, Int32, Int32, Int32)

Determina se la data specificata nell'era specificata corrisponde a un giorno intercalare.

IsLeapMonth(Int32, Int32)

Determina se il mese specificato nell'anno specificato dell'era corrente è intercalare.

(Ereditato da Calendar)
IsLeapMonth(Int32, Int32, Int32)

Determina se il mese specificato nell'anno specificato dell'era specificata è intercalare.

IsLeapYear(Int32)

Determina se l'anno specificato nell'era corrente è bisestile.

(Ereditato da Calendar)
IsLeapYear(Int32, Int32)

Determina se l'anno specificato nell'era specificata è bisestile.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)

Restituisce un valore DateTime impostato sulla data e sull'ora specificate nell'era corrente.

(Ereditato da Calendar)
ToDateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Int32)

Restituisce un valore DateTime impostato sulla data e sull'ora specificate nell'era specificata.

ToFourDigitYear(Int32)

Converte l'anno specificato in un anno a quattro cifre utilizzando la proprietà TwoDigitYearMax per determinare il secolo corretto.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a

Vedi anche