由.Net类库提供的农历计算(C#农历)
2008-01-18 13:08
453 查看
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
* 首发地址:http://blog.csdn.net/zhoufoxcn/archive/2007/11/21/1896258.aspx
*/
namespace ChineseCalendar
{
class Program
{
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()
{
Console.WriteLine("今年的阴历时间:{0}年{1}月{2}日。", chineseDate.GetYear(DateTime.Now),chineseDate.GetMonth(DateTime.Now),chineseDate.GetDayOfMonth(DateTime.Now));
Console.WriteLine("今年阴历天数:{0},今年{1}闰年", chineseDate.GetDaysInYear(DateTime.Now.Year),(chineseDate.IsLeapYear(DateTime.Now.Year)==true)?"是":"不是");
Console.WriteLine("今年农历每月的天数:");
for (int i = 1; i <= chineseDate.GetMonthsInYear(DateTime.Now.Year); i++)
{
Console.Write("{0,-5}",chineseDate.GetDaysInMonth(DateTime.Now.Year,i));
}
}
}
}
using System.Collections.Generic;
using System.Text;
using System.Globalization;
/**
* 说明:在东亚各国,除了通用的公元纪年之外,还有各自以前使用的阴历纪年法,在.net2.0种增加了针对东亚各国的日历类EastAsianLunisolarCalendar,
* 它是一个抽象类,有各种针对不同国家的的子类,其中ChineseLunisolarCalendar就是针对中国的日历类,它提公元纪年与中国传统农历纪年之间的相互转换
* 利用它可以计算天干地支等有关农历的信息,本程序就是来简单展示这个类的用法。它能计算的农历范围从公历1901-2-19至2101-1-28。
* 作者:周公
* 日期:2007-11-21
* 首发地址:http://blog.csdn.net/zhoufoxcn/archive/2007/11/21/1896258.aspx
*/
namespace ChineseCalendar
{
class Program
{
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()
{
Console.WriteLine("今年的阴历时间:{0}年{1}月{2}日。", chineseDate.GetYear(DateTime.Now),chineseDate.GetMonth(DateTime.Now),chineseDate.GetDayOfMonth(DateTime.Now));
Console.WriteLine("今年阴历天数:{0},今年{1}闰年", chineseDate.GetDaysInYear(DateTime.Now.Year),(chineseDate.IsLeapYear(DateTime.Now.Year)==true)?"是":"不是");
Console.WriteLine("今年农历每月的天数:");
for (int i = 1; i <= chineseDate.GetMonthsInYear(DateTime.Now.Year); i++)
{
Console.Write("{0,-5}",chineseDate.GetDaysInMonth(DateTime.Now.Year,i));
}
}
}
}
相关文章推荐
- 由.Net类库提供的农历计算(C#农历)
- 由.Net类库提供的农历计算(C#农历)
- 由.Net类库提供的农历计算(C#农历)-获取当前日期的农历日期
- 由.Net类库提供的农历计算(C#农历)-获取当前日期的农历日期
- 由.Net类库提供的农历计算(C#农历)
- 由.Net类库提供的农历计算(C#农历)
- 由.Net类库提供的农历计算
- 由.Net类库提供的农历计算(C#农历)
- 利用.net提供的类库实现简单的加解密
- 由.Net类库提供的农历计算(C#农历)
- .net 2.0 提供了ChineseLunisolarCalendar类,可以方便的获取到农历日期
- [.NET网格计算框架] Alchemi
- csharp 在万年历中计算显示农历日子出错
- .NET提供和Unmanage code调用的互操作支持
- 【.NET调用Python脚本】C#调用python requests类库报错 'module' object has no attribute '_getframe' - IronPython 2.7
- 微软为AJAX和jQuery类库提供CDN服务
- 文件IO 操作类库,通用成熟的代码,现分享出来,为程序员提供最优秀的源代码
- .net类库获取当前类库的配置(dll的app.config读写)
- 基于JQuery EasyUI类库的WebForm控件库(已提供下载地址)
- .NET实现之(WebService数据提供程序)