新年快乐
Det nærmer seg Kinesisk nyttår i 2025 ! Dette skjer 29. januar i år. I denne artikkelen vil metoder for å regne ut Kinesisk nyttår i .NET presenteres. Det er en del utregninger, heldigvis har .NET en hjelpeklasse for nettopp dette. Xīn nián kuài lè Xīn - Nytt nián - År kuài lè - Godt/lykkelig Uttale er ca slik: "Xin nien quai løe"

Regne ut Kinesisk nyttår
I denne artikkelen skal vi se på hvordan vi kan regne ut Kinesisk nyttår i .NET ! Vi kan regne ut Kinesisk nyttår i .NET på en intrikat måte. Det er definert som den andre nymånen etter vintersolverv. Nyttår faller dermed vanligvis mellom 21. januar og 20. februar og vil derfor variere fra år til år. I .NET har vi en klasse som heter ChineseLunisolarCalendar som en kan regne over til vår gregorianske kalender, som vi har hatt i Vesten siden
1582. Noen land, som Russland, Serbia og Etiopia bruker den julianske kalenderen i visse religiøse sammenhenger. Obs ! Denne klassen kan regne ut maks frem til og med år 2100 kinesisk nyttår, som jo er et stykke frem i tid. Men om 76 år må nok kildekoden her endres ! Kanskje en "V2" av denne klassen? La oss se på selve utregningen i .NET
ChineseCalendarUtils.cs
/// <summary>
/// Provides methods to calculate the date of Chinese New Year.
/// </summary>
public class ChineseNewYearCalculator
{
/// <summary>
/// Gets the date of Chinese New Year for a given year.
/// </summary>
/// <param name="year">The Gregorian year.</param>
/// <returns>The date of Chinese New Year as a <see cref="DateTime"/>.</returns>
public static DateTime GetChineseNewYear(int year)
{
System.Globalization.ChineseLunisolarCalendar chinese = new ChineseLunisolarCalendar();
DateTime chineseNewYear = chinese.ToDateTime(year, 1, 1, 0, 0, 0, 0);
return chineseNewYear;
}
}
Her bruker vi ChineseLunisolarCalendar og vi bruker metoden ToDateTime for 1. januar for spesifisert år. Dette gjør en transformasjon som gir oss kinesisk nyttår regnet ut i vår gregorianske kalender i Vesten.
Neste 10 år med Kinesisk nyttår
Year | Date | Animal |
---|---|---|
2025 | January 29 | Snake |
2026 | February 17 | Horse |
2027 | February 6 | Goat |
2028 | January 26 | Monkey |
2029 | February 13 | Rooster |
2030 | February 3 | Dog |
2031 | January 23 | Pig |
2032 | February 11 | Rat |
2033 | January 31 | Ox |
2034 | February 19 | Tiger |
Kinesisk tolvårssyklus
Den kinesiske tolvårssyklusen stammer fra en myte (det er ikke stedfestet hvor eller når denne kongen levde, i og med at det er en myte, men det stemmer fra veldig gammelt av Kina), hvor Jadekongen Yù Huáng Dà Dì(玉皇大帝) inviterte alle dyr i kongeriket til et løp som gikk på tvers av en elv. De 12 første dyrene som krysset elven, skulle få et år kalt opp etter dem i den kinesiske 12 års Zodiac syklusen. En utregning av Kinesisk år, altså det dyret som året er "tilegnet" blir da en enkel modulo 12 utregning, som vist under.
ChineseCalendarUtils.cs
string GetChineseZodiac(int year)
{
string[] zodiacAnimals =
{
"Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snake",
"Horse", "Goat", "Monkey", "Rooster", "Dog", "Pig"
};
int index = (year - 4) % 12;
return zodiacAnimals[index];
}
Jadekongen Yù Huáng Dà Dì (玉皇大帝) og hans Zodiac-hjul (DALL-e 3 generert kunst)
https://www.youtube.com/watch?v=DcfGPPz7d1s
ReplyDeleteUttale av Godt nyttår ! på kinesisk.
Xin Nian Quai Le
Xīn nián kuài lè Xīn - Nytt nián - År kuài lè - Godt/lykkelig
Chinese Lunar New Year
ReplyDeletehttps://www.youtube.com/watch?v=G72isNi1FUw