using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
/**
* 说明:在东亚各国,除了通用的公元纪年之外,还有各自以前使用的阴历纪年法,在.net2.0种增加了针对东亚各国的日历类EastAsianLunisolarCalendar,
* 它是一个抽象类,有各种针对不同国家的的子类,其中ChineseLunisolarCalendar就是针对中国的日历类,它提公元纪年与中国传统农历纪年之间的相互转换
* 利用它可以计算天干地支等有关农历的信息,本程序就是来简单展示这个类的用法。它能计算的农历范围从公历1901-2-19至2101-1-28。
* 作者:周公
* 日期:2007-11-21
* 最后维护日期:2010-01-05
* 首发地址:http://blog.csdn.net/zhoufoxcn/archive/2007/11/21/1896258.aspx
*/
namespace ChineseCalendar
{
public class Calendar
{
private static ChineseLunisolarCalendar chineseDate = new ChineseLunisolarCalendar();
static void Main(string[] args)
{
//ChineseLunisolarCalendar chineseDate = new ChineseLunisolarCalendar();
ShowYearInfo();
ShowCurrentYearInfo();
Console.ReadLine();
}
/// <summary>
/// 展示阴历年份信息
/// </summary>
public static void ShowYearInfo()
{
for (int i = chineseDate.MinSupportedDateTime.Year; i < chineseDate.MaxSupportedDateTime.Year; i++)
{
Console.WriteLine("年份:{0},月份总数:{1},总天数:{2},干支序号:{3}", i, chineseDate.GetMonthsInYear(i),chineseDate.GetDaysInYear(i)
,chineseDate.GetSexagenaryYear(new DateTime(i,3,1)));
}
}
/// <summary>
/// 展示当前年份信息
/// </summary>
public static void ShowCurrentYearInfo()
{
int lYear=chineseDate.GetYear(DateTime.Now);
int lMonth=chineseDate.GetMonth(DateTime.Now);
int lDay=chineseDate.GetDayOfMonth(DateTime.Now);
/** GetLeapMonth(int year)方法返回一个1到13之间的数字,
* 比如:1、该年阴历2月有闰月,则返回3
* 如果:2、该年阴历8月有闰月,则返回9
* GetMonth(DateTime dateTime)返回是当前月份,忽略是否闰月
* 比如:1、该年阴历2月有闰月,2月返回2,闰2月返回3
* 如果:2、该年阴历8月有闰月,8月返回8,闰8月返回9
*/
int leapMonth = chineseDate.GetLeapMonth(lYear);//获取第几个月是闰月,等于0表示本年无闰月
//如果今年有闰月
if (leapMonth > 0)
{
//闰月数等于当前月份
if (lMonth == leapMonth)
{
Console.WriteLine("今年的阴历日期:{0}年闰{1}月{2}日。", lYear, lMonth - 1, lDay);
}
else if (lMonth > leapMonth)//
{
Console.WriteLine("今年的阴历日期:{0}年{1}月{2}日。", lYear, lMonth - 1, lDay);
}
else
{
Console.WriteLine("今年的阴历日期:{0}年{1}月{2}日。", lYear, lMonth, lDay);
}
}
else
{
Console.WriteLine("今年的阴历日期:{0}年{1}月{2}日。", lYear, lMonth, lDay);
}
Console.WriteLine("今天的公历日期:" + DateTime.Now.ToString("yyyy-MM-dd"));
Console.WriteLine("今年阴历天数:{0},今年{1}闰年", chineseDate.GetDaysInYear(DateTime.Now.Year),(chineseDate.IsLeapYear(DateTime.Now.Year)==true)?"是":"不是");
Console.WriteLine("今年农历每月的天数:");//注意:如果有13个数字表示当年有闰月
for (int i = 1; i <= chineseDate.GetMonthsInYear(DateTime.Now.Year); i++)
{
Console.Write("{0,-5}",chineseDate.GetDaysInMonth(DateTime.Now.Year,i));
}
}
}
}
分享到:
相关推荐
综上所述,实现"C#日历农历日期"功能的关键在于选择合适的农历转换方法,结合C#的日期处理功能,创建用户友好的界面,并确保良好的用户体验。开发这样一个应用不仅可以锻炼你的编程技能,也能让你深入了解日期和时间...
C#阳历农历日历类 农历属性 农历年 农历月份 农历天 农历年(支干) 农历月份(字符) 农历天(字符) 农历属象 二十四节气 阴历节日 阳历节日 公历转农历 传回农历y年的总天数 传回农历y年闰月的天数 传回农历y年闰哪个月...
在本文中,我们将深入探讨如何使用C# Winform开发一个美观且功能丰富的万年历应用程序,包括农历显示和节日功能。C#是一种广泛应用于Windows桌面应用开发的强大编程语言,Winform则是C#中的一个框架,用于创建图形...
在C#编程环境中,开发一个带有农历功能的日历程序是一项常见的任务,特别是在处理与日期相关的应用时。这个“日历代码带农历的C#”项目显然提供了一个完整的解决方案,可以帮助开发者快速理解和实现这一功能。下面将...
本主题聚焦于一个特定的C#自定义控件,即“C#仿QQ日历控件”,它是一个能够显示公历和农历的组件。这个控件的设计灵感来源于QQ聊天软件中的日历功能,尽管它并不完全复制QQ日历的所有特性,但其核心功能是为用户提供...
本示例将深入探讨如何在C#中利用日历类来管理日期和时间信息,以及如何通过源码实现一个直观的日历界面。首先,我们要了解C#中的`System.Globalization.Calendar`类,这是所有日历类的基础,它提供了处理日期和时间...
在C#编程中,实现农历日历是一项常见的需求,这涉及到中国传统的农历计算规则。以下将详细介绍如何使用C#来实现农历日历。 首先,我们需要了解农历的基本概念。农历,也称为阴历,是根据月亮的相位变化(新月到满月...
标题中的"C#日历程序(带农历)"指的是一个使用C#编程语言开发的应用程序,其核心功能是显示日历,并且特别强调了对农历的支持。在编程领域,实现这样的功能通常涉及到日期和时间处理,以及对不同历法的理解和算法...
c# 日历、日期操作类 公历农历转换等 节气节日对应 等操作
在本文中,我们将深入探讨如何使用C# WinForm创建一个桌面日历应用,该应用集成了农历功能并具有任务栏图标。WinForm是.NET Framework的一部分,它为开发桌面应用程序提供了丰富的用户界面元素和控件。任务栏图标是...
【C#桌面日历】项目是一个使用C#编程语言开发的桌面应用程序,它提供了一种简单易用的日历功能,并且具有最小化到任务栏系统托盘的能力,同时还可以查询农历日期,为用户日常生活和工作提供了便利。这个项目主要是...
本篇文章基于提供的 `ChinaCalendar` 类介绍了如何在 C# 中实现农历日期的转换以及获取生肖和天干地支的方法。此外,还探讨了此类工具可能的应用场景,例如节日提醒、农事活动安排等。通过对这些知识点的理解,...
在C#编程中,显示农历日期是一项常见的需求,特别是在开发涉及中国传统节日或需要与日历功能结合的应用程序时。为了实现这一功能,我们需要理解农历的基本原理,并利用C#的类库来处理农历日期的计算和转换。下面我们...
本主题主要围绕C#如何实现农历转换和显示的功能,这对于开发需要涉及农历计算的软件,如日历应用、节假日提醒等,具有重要的实践价值。 首先,我们需要理解农历和阳历的区别。阳历,即公历,是国际通用的日历系统,...
一个日历程序,可以转换农历,显示节气。还带有圆形的时钟。资源包含了农历节气算法和时钟控件源代码。
自己做的C#中日历转换类,需要时请根据自己情况更改
在上述的【标题】".NET 农历日历控件"中,开发者创建了一个自定义的日历控件,专门用于显示农历日期。这个控件对于那些需要在应用程序中集成农历功能,尤其是在中国、韩国、越南等使用农历的国家,是非常有用的。 ...
总的来说,这个C#日历控件集成了农历显示和复选功能,解决了许多开发者在处理日期选择时的需求,尤其适合需要农历功能的项目。提供的源码更是宝贵的教育资源,有助于程序员深入理解控件开发和优化的细节。如果你正在...
5. **自定义农历日历**:如果你需要实现特定的农历日历显示或计算逻辑,可以继承`ChineseLunisolarCalendar`并覆盖其部分方法,以满足自定义需求。 在"MonthlyCalendarDemos"和"MonthlyCalendar"这两个文件中,很...
在C#编程环境中,开发农历日期类是一项常见的需求,特别是在处理与中国文化相关的日期计算和展示时。这个"ChineseCalendar"类库提供了一种方便的方式来处理农历日期,并且包含了一些额外的功能,如星座、诞生石和...