当前位置: 首页 > 编程日记 > 正文

ChineseCalendar类[转]

    ///<summary>
    
///Title: ChineseCalendar类
    
///Description: 中文日期工具类
    
///@author 万灵杰[作者]
    
///@version 1.0.0.0
    
///@date 2009年7月30日
    
///@modify 
    
///@date 
    
/// </summary>
    public class ChineseCalendar
    {
        
private static readonly string[] Animals = new string[] { """""""""""""""""""""""" };
        
private static readonly string[] arrCnNames = new string[] { """""""""""""" };
        
private static ChineseLunisolarCalendar calendar = new ChineseLunisolarCalendar();
        
private const string CelestialStem = "甲乙丙丁戊己庚辛壬癸";
        
private static readonly string[] ChineseDayName = new string[] { 
            
"初一""初二""初三""初四""初五""初六""初七""初八""初九""初十""十一""十二""十三""十四""十五""十六"
            
"十七""十八""十九""二十""廿一""廿二""廿三""廿四""廿五""廿六""廿七""廿八""廿九""三十"
         };
        
private static readonly string[] ChineseMonthName = new string[] { """""""""""""""""""""十一""十二" };
        
private static string ChineseNumber = "〇一二三四五六七八九";
        
private const string TerrestrialBranch = "子丑寅卯辰巳午未申酉戌亥";

        
public static string Now
        {
            
get
            {
                
return GetChineseCalendar(DateTime.Now);
            }
        }

        
public static string GetAnimals(DateTime time)
        {
            
return Animals[(calendar.GetYear(time) - 4% 12];
        }

        
public static string GetChineseCalendar(DateTime time)
        {
            
return string.Format("{0}年{1}月{2}", GetStemBranch(time), GetMonth(time), GetDay(time));
        }

        
public static string GetDay(DateTime time)
        {
            
return ChineseDayName[calendar.GetDayOfMonth(time) - 1];
        }

        
public static string GetMonth(DateTime time)
        {
            
int month = calendar.GetMonth(time);
            
int year = calendar.GetYear(time);
            
int num3 = 0;
            
for (int i = 3; i <= month; i++)
            {
                
if (calendar.IsLeapMonth(year, i))
                {
                    num3 
= i;
                    
break;
                }
            }
            
if (num3 > 0)
            {
                month
--;
            }
            
return (((num3 == (month + 1)) ? "" : ""+ ChineseMonthName[month - 1]);
        }

        
public static string GetStemBranch(DateTime time)
        {
            
int sexagenaryYear = calendar.GetSexagenaryYear(time);
            
int startIndex = (sexagenaryYear % 12- 1;
            
if (startIndex > 11)
            {
                startIndex 
= 0;
            }
            
if (startIndex < 0)
            {
                startIndex 
= 11;
            }
            
int num3 = (sexagenaryYear % 10- 1;
            
if (num3 > 9)
            {
                num3 
= 0;
            }
            
if (num3 < 0)
            {
                num3 
= 9;
            }
            
return ("甲乙丙丁戊己庚辛壬癸".Substring(num3, 1+ "子丑寅卯辰巳午未申酉戌亥".Substring(startIndex, 1));
        }

        
public static string GetWeekDayName(DateTime time)
        {
            
return ("星期" + arrCnNames[(int)time.DayOfWeek]);
        }

        
public static string GetYear(DateTime time)
        {
            StringBuilder builder 
= new StringBuilder();
            
int year = calendar.GetYear(time);
            
do
            {
                
int num2 = year % 10;
                builder.Insert(
0, ChineseNumber[num2]);
                year 
/= 10;
            }
            
while (year > 0);
            
return builder.ToString();
        }
    }


转载于:https://www.cnblogs.com/chenqingwei/archive/2010/06/09/1754448.html

相关文章:

程序员的自我救赎---13.1:职场招聘与面试心得

《前言》 《目录》 &#xff08;一&#xff09; Winner2.0 框架基础分析 &#xff08;二&#xff09;PLSQL报表系统 &#xff08;三&#xff09;SSO单点登录 &#xff08;四&#xff09; 短信中心 &#xff08;五&#xff09;钱包系统 &#xff08;六&#xff09;GPU支付中心 &…

网络编程 UDP通信的过程 TCP通信过程 多线程文件上传

网络概述 协议 在网络之间传出数据时需要按照指定的标准来传输&#xff0c;标准中规定了数据的格式、大小、传输的方式、传输速率。形成统一规范—>按照规范开发的代码—>协议&#xff08;应用层、传输层、网络层、链路层&#xff09; InetAddress类 用来分装网络地址…

set debug mode for flex builder

1. 要具备debug功能&#xff0c;我们必须要首先安装Flash Player Debug 版本。windows版本2. 安装好debug版本后&#xff0c;我们还需要添加日志的配置文件mm.cfg。该配置文件存放的目录如下&#xff1a;Macintosh OS X MacH D:Library:Application Support:macromedia:mm.cfgM…

XML 解析XML文档 XML约束

XML 什么是XML Extensible Markup Language&#xff08;可扩展的标记语言&#xff09;他是一个语言&#xff0c;有自己的语法&#xff0c;和Java以及其他的编程无关“标记” 在文件中包含类似于张三 &#xff0c;这种用尖括号括起来的叫标记&#xff0c;使用来标记数据的。标…

Host Only、NAT和Bridge三种网络连接

Host Only、NAT和Bridge三种网络连接 在安装好了Linux镜像之后&#xff0c;如何连接物理机和虚拟机呢&#xff1f;这就需要网络连接&#xff0c;网络连接有三种&#xff1a;HostOnly、NAT、Bridge&#xff0c;它们都可用于Guest虚拟机和Host物理机之间的网络通信。 一、三者的不…

OSPF 提升 一 ----基础

ospf ccnp内容 一 link-state protocols IGP 开放式的最短路径优先协议 公有协议支持中到大型的网络 spf算法 链路状态协议1.传送的LSA link status advertisement 链路状态通告 包换拓扑信息具体包括&#xff1a;网段的前缀 掩码 连接的路由器的…

C#实现网页截图功能

//需要添加System.Drawing及System.Windows.Forms引用 using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.Windows.Forms; namespace 网页截图 { class Program { [S…

微软发布全新多核心操作系统原型:Barrelfish

Windows 7完成之后&#xff0c;很多人开始把目光投向微软的下一代服务器和客户端操作系统Windows 8&#xff0c;不过今天微软放出了一套全新操作系统的原型&#xff0c;开发代号“Barrelfish”。该系统由微软剑桥研究院和苏黎世理工学院联合全新开发&#xff0c;专为现在和未来…

Docker应用:Kubernetes(容器集群)

Docker应用&#xff1a;Kubernetes&#xff08;容器集群&#xff09; 原文:Docker应用&#xff1a;Kubernetes&#xff08;容器集群&#xff09;阅读目录&#xff1a; Docker应用&#xff1a;Hello WorldDocker应用&#xff1a;Docker-compose&#xff08;容器编排&#xff09;…

通道应用——抠头发

通道应用——抠头发 原图&#xff1a; 效果图&#xff1a; 步骤&#xff1a;1、打开原图的“通道面板”&#xff0c;选择颜色对比分明的绿色通道&#xff0c;并新建一个绿色通道副本&#xff1b;2、选择“图像”-“调整”-“色阶”&#xff0c;调节色阶使得头发颜色更分明些&am…

2017 ACM/ICPC 南宁赛区小结 By JSB @ Reconquista

Statistics TYPE: Onsite ContestNAME: 2017 - ICPC - Asia NanningPLAT: pc^2TIME: 2017/11/26 09:00-14:00LOCA: Guangxi UniversityTEAM: Reconquista[shb,lsmll,jsb]RANK: 8/227 3.52%SOLVE: 8/13PENALTY: 451 ◦ A - 1 ◦ E - 123 (2) ◦ F - 8 ◦ H - 55 ◦ I - 97 (1) ◦…

用户管理系统控制台版连接数据库

建User表 CREATE TABLE user (id INT(11) NOT NULL AUTO_INCREMENT,name VARCHAR(20) DEFAULT NULL,pwd VARCHAR(20) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEINNODB AUTO_INCREMENT5 DEFAULT CHARSETutf8User对象&#xff08;javaBean&#xff09; public class User {priva…

微信小程序组件 日历

js文件 use strict;let choose_year null,choose_month null;const conf {data: {hasEmptyGrid: false,showPicker: false},onLoad() {const date new Date();const cur_year date.getFullYear();const cur_month date.getMonth() 1;const weeks_ch [ 日, 一, 二, 三, …

node编写定时任务,for循环只执行一遍的解决办法

在用node编写定时任务时候&#xff0c;发现for循环只执行i0这一次&#xff0c;就不接着循环执行了&#xff0c;下面贴上代码&#xff1a; exports.task async function(ctx){ let { app } ctx, resultArr1 [],//查询的数据库数据 resultArr2 [];//查询的数据库…

oledb读不到dbf文件内容

最近在处理一批VFP的数据库&#xff0c;使用OleDB方式读取一直很正常&#xff0c;前两天突然碰到一张表怎么也读不出数据来&#xff0c;害我瞎忙了一整天&#xff0c;在研究了DBF文件结构后发现记录前的0x20位置存储的是0x2A。 一查才知道是删除标记&#xff0c;我倒&#xff0…

好用的截图工具

好用的截图工具...简单好用而且不大转载于:https://blog.51cto.com/dd123/208983

“AS3.0高级动画编程”学习:第二章转向行为(上)

因为这一章的内容基本上都是涉及向量的&#xff0c;先来一个2D向量类&#xff1a;Vector2D.as (再次强烈建议不熟悉向量运算的童鞋&#xff0c;先回去恶补一下高等数学-07章空间解释几何与向量代数.pdf) package {import flash.display.Graphics;public class Vector2D {privat…

用Azure VM + Azure Database for MySQL搭建Web服务

仍然是一篇动手实验&#xff0c;实验演示如何在Azure的虚拟机内部署一个Web服务器&#xff0c;并且使用Azure Mysql PaaS作为本应用的数据库。此实验的目的一方面是为了演示Azure IaaS层和PaaS服务配合使用的常规操作&#xff0c;另一方面是为之后的文章打基础&#xff0c;后续…

C3P0_and_pro.properties配置文档代码

C3P0-config.xml配置文件 <c3p0-config> <!-- 默认配置&#xff0c;如果没有指定则使用这个配置 --> <default-config><property name"driverClass">com.mysql.jdbc.Driver</property><property name"jdbcUrl">jdbc:…

电视信号——行场同步

电视信号分NTSC制和PAL制两种制式, NTSC制每秒刷新60次, 而PAL制每秒刷新50次。 水平消隐&#xff1a;电子枪从左到右画出象素&#xff0c;它每次只能画一条扫描线&#xff0c;画下一条之前要先回到左边并做好画下一条扫描线的准备&#xff0c;这之间有一段时间叫做水平消隐&am…

QWidget一生,从创建到销毁事件流

版权声明&#xff1a;若无来源注明&#xff0c;Techie亮博客文章均为原创。 转载请以链接形式标明本文标题和地址&#xff1a;本文标题&#xff1a;QWidget一生&#xff0c;从创建到销毁事件流 本文地址&#xff1a;http://techieliang.com/2017/11/319/ 代码较多&#xff…

事物_软件分层

事务 事务是&#xff1a;在数据库指业务处理的”一个业务“对应数据库中的多个步骤的操作。例如银行转账。 面对的问题&#xff1a;程序接受请求后&#xff0c;会至少发送两条SQL语句&#xff0c;两条语句之间会有时间的间隔&#xff0c;如果间隔时间期间Mysql服务器发生意外&a…

雷林鹏分享:jQuery EasyUI 数据网格 - 创建属性网格

jQuery EasyUI 数据网格 - 创建属性网格 属性网格(property grid)带有一个内置的 expand(展开)/collapse(合并) 按钮&#xff0c;可以简单地为行分组。您可以简单地创建一个可编辑属性的分层(hierarchical)列表。 设置 HTML url"propertygrid_data.json" showGroup&q…

as3.0中如何阻止事件冒泡?

as3.0中的事件冒泡机制有时候会很烦人&#xff0c;比如一个Sprite(方便下文描述就命名为Container吧)把另一外Sprite(称为Child吧)做为子元素套进来以后&#xff0c;如果两个Sprite都注册了Mouse_Down事件&#xff0c;要想在Child上点击鼠标时系统只响应Child的Mouse_Down事件&…

紫色回归线:雅虎中国的运筹学

共同体并不意味着一个我们可以获得享受的世界&#xff0c;而是一个我们热切希望栖息、希望重新拥有的世界。—— 齐格蒙特.鲍曼紫色回归线&#xff1a;雅虎中国的运筹学紫色是比较中性的颜色&#xff0c;但紫色在生活中却也是温柔、神秘、甚至性感的代词。当雅虎中国将主色调重…

JavaScript_上

javaScript JavaScript,简称JS&#xff0c;是Web开发中不可缺少的脚本语言的&#xff0c;不需要编译就可以运行&#xff08;解释性语言&#xff09;。它“寄生”在HTML体内&#xff0c;随网络传输到客户端在浏览器中运行。js代码可以写到html的任何地方。一般写在 body 结束标签…

java类加载的表现形式

java中的类是动态加载的&#xff0c;我们先看一下我们常用的类加载方式&#xff0c;先有一个感性的认识&#xff0c;才能进一步 深入讨论,类加载无非就是下面三种方式。 class A{} class B{} class C{} public class Loader{ public static void main(String[] args) throws Ex…

.net core在vs开发环境下脱离iis运行

.net core相比之前.net的是一个可以跨平台&#xff0c;脱离iis运行的语言&#xff0c;并且项目启动的效率要比用iis启动快&#xff0c;可以说进一步提高了开发的效率。要想自己的项目core脱离iis&#xff0c;首先选择vs启动项目的载体&#xff1a; 如下图&#xff0c;不要选择I…

Sublime遇见中文乱码问题?

今天在写demo的时候&#xff0c;突然发现html页面上的中文在浏览器上显示乱码~&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 这时&#xff0c;我根据网上的提示安装了两个插件:converttoUtf-8&#xff0c;support Gbk ~~~然而&#xff0c;好像无济于事~~ 于是…

Dynamics AX 2009 升级PreSynchnoize时的无反应的解决

问题: 安装完升级补丁后在Data upgrade cockpit窗口点击Run或Train Run按钮后Update Job没有开始&#xff0c;始终显示为Ready状态。 #1 原因&#xff1a;数据库以前已经做过升级&#xff08;例如安装过AX 2009 SP1&#xff09;并且已经存在一个DataUpdate批处理组但是针对这个…