• 日历日历日历


    原版始于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("
                                             now:%d-%d-%d  %d:%d:%d   星期%d  
    
    ",
    	   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("
                                                      如今是:%d-%d-%d  %d:%d:%d  
    
    ",
    	  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("
    
    
    
    
    
    
    
    				谢谢使用");
        _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月                                 
    
    
    ",year,month);
        printf("星期日   星期一  星期二 星期三  星期四  星期五 星期六
    ");
        printf("-------------------------------------------------------
    ");    
        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("
    ");
    	}
        printf("
    ");
        printf("-------------------------------------------------------
    
    ");
        printf("加年w 减年s 加月d 减月a  退出按	c	
    
    
    ");
    }
    
    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("
                                             now:%d-%d-%d  %d:%d:%d   星期%d  
    
    ",
    	   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("
                                                      如今是:%d-%d-%d  %d:%d:%d  
    
    ",
    	  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("
    
    
    
    
    
    
    
    				谢谢使用");
        _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月                                 
    
    
    ",year,month);
        printf("星期日   星期一  星期二 星期三  星期四  星期五 星期六
    ");
        printf("-------------------------------------------------------
    ");    
        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("
    ");
    	}
        printf("
    ");
        printf("-------------------------------------------------------
    
    ");
        printf("加年w 减年s 加月d 减月a  退出按	c	
    
    
    ");
    }
    
    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; }


  • 相关阅读:
    随意给一组数,找出满足一下条件的a[i],a[i]左边的数小于等于a[i],a[i]右边的数大于等于a[i]
    SVN
    四种进程或线程同步互斥的控制方法
    二叉树转双向链表
    最大连续子序列和
    找出一个字符串中第一个只出现一次的字符
    清除浮动的那些事
    jQuery中ready与load事件的区别
    css 经典布局之圣杯布局(左右固定,中间自适应)
    window.name + iframe跨域实例
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7115063.html
Copyright © 2020-2023  润新知