日历日历日历

原版始于2012.1.10

#include "stdio.h"
#include "conio.h"
#include "time.h"
#include "stdlib.h"

void diao(int year,int month);//第一个被调用函数,只是获得space;
int leap(int year);//是闰年加1
int jjmonth(int year,int month);//计算n月的总天数
void shuchu(int space,int year,int month);//输出
int get_leap(int year);//判断是否为闰年
int month_of_day(int year, int month);//这月有几天啊

int main()
{
int year,month;
int kongzhi;
 struct tm*p;//tm结构指针
  time_t secs;//声明time_t类型变量
  time (&secs);//获取系统日期与时间
  p=localtime(&secs);//获取当地日期时间

printf("\n                                         now:%d-%d-%d  %d:%d:%d   星期%d  \n\n",
	   p->tm_mon+1,p->tm_mday,p->tm_year+1900,p->tm_hour,p->tm_min,p->tm_sec,p->tm_wday);
year=p->tm_year+1900;
month=p->tm_mon+1;
	  diao(year,month);
	while(1)
	{
		kongzhi=getch();//用getch就不用按enter了

		if(kongzhi=='w')year=year+1;
        if(kongzhi=='s')year=year-1;
        if(kongzhi=='d')
		{
			month=month+1;
			if(month>12)
			{
                year=year+1;
				month=1;
			}
		}
        if(kongzhi=='a')
		{
			month=month-1;
			if(month<1)
			{
              year=year-1;
			  month=12;
			}
		}
		if(kongzhi=='c')break;
         system("cls"); //清屏清屏清屏

  printf("\n                                                  现在是:%d-%d-%d  %d:%d:%d  \n\n",
	  p->tm_mon+1,p->tm_mday,p->tm_year+1900,p->tm_hour,p->tm_min,p->tm_sec);

        diao(year,month);
	}
    system("cls");
    printf("\n\n\n\n\n\n\n\n\t\t\t\t谢谢使用");
    _sleep(10000);//延迟函数
   return 0;
}

void diao(int year,int month)
{
	int tian,space;//这个月之前的天数
	tian=(year-1600)*365+leap(year);
    tian=tian+jjmonth(year,month)-1;
	space=tian%7;//得到空格数

    shuchu(space,year,month);
}

int leap(int year)
{int yan,i=0;//1600到本年的闰年数
	for(yan=1600;yan<year;yan+=4)
		{
       if( (yan%4==0) && (yan%100 != 0) || (yan%400 == 0))i++;
	}
        return i;
}

int jjmonth(int year,int month)
{//本年已经过去天数
     if( (year%4==0) && (year%100 != 0) || (year%400 == 0))
	 {
		     switch(month-1)
				{
			    case 0:return 0;
				case 1:return 31;
				case 2:return 60;
				case 3:return 91;
				case 4:return 121;
				case 5:return 152;
				case 6:return 182;
				case 7:return 213;
				case 8:return 244;
				case 9:return 274;
				case 10:return 305;
				case 11:return 335;
				 }
	 }
			else
			 {
              switch(month-1)
				{
			    case 0:return 0;
				case 1:return 31;
				case 2:return 59;
				case 3:return 90;
				case 4:return 120;
				case 5:return 151;
				case 6:return 181;
				case 7:return 212;
				case 8:return 243;
				case 9:return 273;
				case 10:return 304;
				case 11:return 334;
				 }

			 }
}

void shuchu(int space,int year,int month)
{
	int i;
	 printf("                       %d年%d月                                 \n\n\n",year,month);
    printf("星期日   星期一  星期二 星期三  星期四  星期五 星期六\n");
    printf("-------------------------------------------------------\n");
    for(i=0;i<space;i++) printf("       ");//先输出空格数
    for(i=1;i<month_of_day(year,month)+1;i++){//本月有多少天

      printf("%7d",i);
	  if((space+i)%7==0)printf("\n");
	}
    printf("\n");
    printf("-------------------------------------------------------\n\n");
    printf("加年w 减年s 加月d 减月a  退出按	c	\n\n\n");
}

int month_of_day(int year , int month)
{ //本月有多少天

    switch(month)
    {case 2:  return leap(year)?29:28;//这里起到了简化作用
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12: return 31;
    case 4:
    case 6:
    case 9:
    case 11:return 30;
    }

}
/*int get_leap(int year)
{//若本年是闰年,二月加1
    if( (year%4==0) && (year%100 != 0) || (year%400 == 0))
        return 1;
    return 0;
}*/

////////////////////////////---------------------------------/

#include "stdio.h"
#include "conio.h"
#include "time.h"
#include "stdlib.h"

void diao(int year,int month);//第一个被调用函数,只是获得space;
int leap(int year);//是闰年加1
int jjmonth(int year,int month);//计算n月的总天数
void shuchu(int space,int year,int month);//输出
int get_leap(int year);//判断是否为闰年
int month_of_day(int year, int month);//这月有几天啊

int main()
{
int year,month;
int kongzhi;
 struct tm*p;//tm结构指针
  time_t secs;//声明time_t类型变量
  time (&secs);//获取系统日期与时间
  p=localtime(&secs);//获取当地日期时间

printf("\n                                         now:%d-%d-%d  %d:%d:%d   星期%d  \n\n",
	   p->tm_mon+1,p->tm_mday,p->tm_year+1900,p->tm_hour,p->tm_min,p->tm_sec,p->tm_wday);
year=p->tm_year+1900;
month=p->tm_mon+1;
	  diao(year,month);
	while(1)
	{
		kongzhi=getch();//用getch就不用按enter了

		if(kongzhi=='w')year=year+1;
        if(kongzhi=='s')year=year-1;
        if(kongzhi=='d')
		{
			month=month+1;
			if(month>12)
			{
                year=year+1;
				month=1;
			}
		}
        if(kongzhi=='a')
		{
			month=month-1;
			if(month<1)
			{
              year=year-1;
			  month=12;
			}
		}
		if(kongzhi=='c')break;
         system("cls"); //清屏清屏清屏

  printf("\n                                                  现在是:%d-%d-%d  %d:%d:%d  \n\n",
	  p->tm_mon+1,p->tm_mday,p->tm_year+1900,p->tm_hour,p->tm_min,p->tm_sec);

        diao(year,month);
	}
    system("cls");
    printf("\n\n\n\n\n\n\n\n\t\t\t\t谢谢使用");
    _sleep(10000);//延迟函数
   return 0;
}

void diao(int year,int month)
{
	int tian,space;//这个月之前的天数
	tian=(year-1600)*365+leap(year);
    tian=tian+jjmonth(year,month)-1;
	space=tian%7;//得到空格数

    shuchu(space,year,month);
}

int leap(int year)
{int yan,i=0;//1600到本年的闰年数
	for(yan=1600;yan<year;yan+=4)
		{
       if( (yan%4==0) && (yan%100 != 0) || (yan%400 == 0))i++;
	}
        return i;
}

int jjmonth(int year,int month)
{//本年已经过去天数
int y=0;                 //起到简化作用

if( (year%4==0) && (year%100 != 0) || (year%400 == 0))y=1;

           switch(month-1)
				{
			    case 0:return 0;
				case 1:return 31;
				case 2:return 59+y;
				case 3:return 90+y;
				case 4:return 120+y;
				case 5:return 151+y;
				case 6:return 181+y;
				case 7:return 212+y;
				case 8:return 243+y;
				case 9:return 273+y;
				case 10:return 304+y;
				case 11:return 334+y;
				 }

}

void shuchu(int space,int year,int month)
{
	int i;
	 printf("                       %d年%d月                                 \n\n\n",year,month);
    printf("星期日   星期一  星期二 星期三  星期四  星期五 星期六\n");
    printf("-------------------------------------------------------\n");
    for(i=0;i<space;i++) printf("       ");//先输出空格数
    for(i=1;i<month_of_day(year,month)+1;i++){//本月有多少天

      printf("%7d",i);
	  if((space+i)%7==0)printf("\n");
	}
    printf("\n");
    printf("-------------------------------------------------------\n\n");
    printf("加年w 减年s 加月d 减月a  退出按	c	\n\n\n");
}

int month_of_day(int year , int month)
{ //本月有多少天

    switch(month)
    {case 2:  return get_leap(year)?29:28;
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12: return 31;
    case 4:
    case 6:
    case 9:
    case 11:return 30;
    }

} 

int get_leap(int year)
{//若本年是闰年,二月加1
    if( (year%4==0) && (year%100 != 0) || (year%400 == 0))
        return 1;
    return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 07:49:18

日历日历日历的相关文章

Android自定义日历,可以点击、标注日期、节气、旧历等

1. [图片] 9A59974C-47D4-47E3-8136-3F873EB9BBDC.jpg 2. [图片] left_arrow_pre.png 3. [图片] left_arrow.png 4. [图片] right_arrow_pre.png 5. [图片] right_arrow.png /****************从此出开始将代码拷贝到一个文件中*******************/ package cc.util.android.view; import java.tex

SharePoint 2013/2010 中的日历重合 (Calendars Overlay)

日历重合 (Calendars Overlay)的用途就是将 不多于10个日历或日历视图聚集在一个 日历视图中显示,并且可以用不同颜色区分来自不同 日历或日历视图的事件. 1.首先创建一个List View,名称为“ColorCalendar”,Filter中设置根据“Category”值为空过滤数据:此ListView设置为默认视图,作为重合(Overlay)视图的主视图. 2.创建根据Category Column对应的下拉值的List View,例如创建名称为“Meeting”的List

编写一个日历控件

这一小节就编写一个小小日历.日历的编写看起来不容易,实际上掌握了思路,编写起来也很简单.日历的制作可以转化成一个二维数组的排序,根据排序然后生成html代码. 1.首先确定这个月的第一天是星期几,再利用这日期确定其它日期的位置,最后定制成一个二维数组,根据二维数组生成html. 2.监听事件,无非是上一年,上个月,下个月,下一年等. 3.触发事件,点击完按钮后,日期重新计算.然后做的事情很简单,再按第一步进行. 第一步: 确定这个月的第一天是星期几,比如这个月是2月1号,对应的是星期天. var

使用sharepoint2010 分组日历制作会议室预订系统

近期由于会议较多,各部门之间使用会议室时间冲突频繁发生,使沟通成本明显增加.为了规范 化管理会议室资源,提高会议效率,降低沟通成本,上线一套会议室管理系统势在必行. 现有生产环境中,拥有微软的sharepoint系统,而sharepoint 2010的分组日历功能支持用户预订会 议室和视听设备等资源.所以最先考虑使用sharepoint的内在资源预订功能.其他开源软件系统诸如 mrbs等暂不考虑,之后可以考虑部署mrbs和sharepoint两套系统对比一下. 配置sharepoint 资源预订

365日历:信息与社区化的新模式

[模式] 365日历由一款工具类App,向信息化平台转型,一方面为经过认证的网站和商家的日历大号做导流,同时提供个性化内容的增值服务,开辟了自己独有的O2O模式. [特点] 1.在日历上搭建信息平台,方便用户在日历上看到各种有价值的信息: 2.流动的信息使365日历在一定程度上具备了媒体属性,这使得商业化路线更为清晰: 3.将日常生活中的关系引入到日历当中,其粘性因为关系和功能进一步增加: 4.日历的不同信息把用户分类成一个个垂直的圈子,形成一个个小型社区化: 5.365日历会对进入日历广场的日

JavaScript之jQuery-7 jQuery 使用插件(使用插件、日历插件、表单验证插件)

一.jQuery 使用插件 插件的查找与帮助 - jQuery 官方网站的插件库(http://plugins.jquery.com) 提供了大量的插件.并给出去了每个插件的用户评级.版本及bug等 - 库中列出了每个插件的ZIP文件下载.演示.示例代码及教程 使用插件 - step 1:将插件包导入到页面中,并确保它在jQuery源文件之后 <script src="jqeury-1.11.1.js"></script> <script></

调用Android自带日历功能

Android手机配备有一个内置的日历应用程序.第三方应用程序可以利用日历内容提供商接口读取用户的日历信息和安排在日历新的事件.这个日历可以直接同步用户的谷歌日历. 不幸的是,没有文档和Android手机的日历应用集成,因为有另外一个联系人应用程序.相反,本文所提供的所有信息,将会通过逆向工程的谷歌日历内容提供商.该接口是受变化的,将会支持有限的功能.然而,日历一体化可以成为一些类型的应用强大的功能. 本文的代码测试之到Android 2.0 SDK版本.我们将发布一个更新如果有一个很大的转变.

iOS9中如何在日历App中创建一个任意时间之前开始的提醒(二)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 接上一篇,我们来看一下如何根据类型和名称找到一个特定的日历源,首先我们写一个帮助方法: -(EKSource*)sourceInEventStore:(EKEventStore*)store sourceType:(EKSourceType)type sourceTitle:(NSString*)title{ for (EKSource *source in

利用Python自动化生成逼格高的日历!简单又实用

本次内容有感于<Python编程快速上手-让繁琐工作自动化>. 根据书中的「处理Excel电子表格」章节内容,做出一份专属日历. 使用的模块为openpyxl,一个能读取和修改Excel电子表格的Pyhton模块. 实现自动化处理表格信息,摆脱无趣无味. 此外还有calendar模块,通过该模块生成日历信息. 最后利用openpyxl和calendar库,实现自动化生成爱豆日历. / 01 / 科普 在进行代码操作前,简单对相关知识做个简单的学习. 一个Excel电子表格文档称为一个工作?.

Android零基础入门第60节:日历视图CalendarView和定时器Chronometer

原文:Android零基础入门第60节:日历视图CalendarView和定时器Chronometer 上一期学习了AnalogClock.DigitalClock和TextClock时钟组件,本期继续来学习日历视图CalendarView和定时器Chronometer. 一.CalendarView 日历视图(CalendarView)可用于显示和选择日期,用户既可选择一个日期,也可通过触 摸来滚动日历.如果希望监控该组件的日期改变,则可调用CalendarView的 setOnDateCha