C¸À¸ì´Ø·¸·Ç¼¨ÈÄ

²áµî¥í¥°

No£¸£²£±¡¡¥«¥ì¥ó¥À¡¼¤ÈÍËÆü¤Î½ÐÎÏ

[Ìá¤ë]¡¡[¥Û¡¼¥à¥Ú¡¼¥¸]
No.10381

¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¥ß¥³(2003/11/09 03:27:07)


º£,¤³¤¦¤¤¤¦¢­¥«¥ì¥ó¥À¡¼¤Î¥×¥í¥°¥é¥à¤òºî¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬,

/*¡¡¥¤¥ó¥¯¥ë¡¼¥É½èÍý  */
#include <stdio.h>
#include <stdlib.h>
#include<string.h>

/*¡¡´Ø¿ô¥×¥í¥È¥¿¥¤¥×Àë¸À¡¡*/
int day(int y, int m);
int date(int y, int m, int d);
void disp(int y, int m, int hi, int you);

/*------------*/
/* ·×»»´Ø¿ô1 */
/*------------*/
int day(int y, int m)
{
    int d = 0;                       //¥ê¥¿¡¼¥óÃÍ
    
    if ((m == 2)&&(((y%4 == 0) && (y%100 != 0)) || (y % 400 == 0)))//2·î¤Ç±¼Ç¯
			d = 29;
	else
	{
		 if (m == 2)                                              //2·î¤ÇÊ¿¾ïǯ
			d = 28;
		else
		{
			if((m == 4)||(m == 6)||(m == 9)||(m == 11))          //4,6,9,11·î¤Î¤È¤­
				d = 30;
			else										        //¤½¤ì°Ê³°¤Î¤È¤­
				d = 31;
		}
	}

    return d;
}

/*------------*/
/* ·×»»´Ø¿ô2 */
/*------------*/
int date(int y, int m, int d)
{
	if(m==1 || m==2)//1·î¤ª¤è¤Ó2·î¤Î¤È¤­¤Ï,
	{
		y -= 1;     //ǯ¿ô¤«¤é£±¤ò°ú¤­,
		m += 10;    //·î¿ô¤Ë10¤ò²Ã¤¨¤ë¡£
	}
	else			//¤½¤Î¾¤Î·î¤Î¤È¤­¤Ï,
		m -= 2;		//·î¿ô¤«¤é2¤ò°ú¤¯¡£
  
    return (y + y / 4 - y / 100 + y / 400 + ((int)2.6 * m - (int)0.195) + d) % 7;//Zeller¤Î¸ø¼°
}

/*------------*/
/* ɽ¼¨´Ø¿ô1*/
/*------------*/
void disp(int y, int m, int hi, int you)
{
    int i;

    you = date(y, m, 1);			//ÍËÆü¥³¡¼¥É
    hi = day(y, m);					//ÆüÉÕ
    
    printf(" %dǯ%d·î\n", y, m);		//À¾Îñǯ¤È·î¤òɽ¼¨¡£
    printf(" Æü ·î ²Ð ¿å ÌÚ ¶â ÅÚ\n");	//ÍËÆü¤òɽ¼¨¡£
       
    for (i = 1; i <= you; i++)			//ÍËÆü¥³¡¼¥É¿ôʬ¤À¤±¶õÇò¤òɽ¼¨¡£
        printf("   ");
    for (i = 1; i <= hi; i++)			//ÆüÉÕ¤òɽ¼¨¡£
	{
        printf(" %2d", i);				//ÅÚÍËÆü¤Ê¤é²þ¹Ô¤·,
        if ( (i + you) % 7 == 0)			//ÍËÆüɽ¼¨¥³¡¼¥É¤ò0¤Ë¤¹¤ë¡£
            putchar('\n');				//¤½¤ì°Ê³°¤ÎÍËÆü¤Ê¤é,ÍËÆü¥³¡¼¥É¤Ë1¤ò­¤¹¡£
    }
}

/*¡¡¥á¥¤¥ó´Ø¿ô  */
void main(void)
{

/*¡¡³ÆÊÑ¿ôÀë¸À  */ 
int y, m;	      //À¾Îñǯ,·î
int hi = 0,you = 0; //Æü¿ô,ÍËÆü¥³¡¼¥É
int nEndFlg = 0;
/*¡¡¥«¥ì¥ó¥À¡¼É½¼¨¤Î¾ì¹ç¡¡*/

/*¡¡À¾Îñǯ¤È·î¤ÎÆþÎÏ¡¡*/

	printf("À¾Îñǯ¤È·î¤òÆþÎÏ:");
	
/*¡¡ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯¡¡*/
	while(nEndFlg != 1){
		
		rewind(stdin);
		scanf("%d %d",&y,&m);
		
		if((y >= 1000 && y <= 9999) && (m >= 1 && m <= 12))
			nEndFlg = 1;
		else{
			printf("ÆþÎÏ¥¨¥é¡¼!\n");
			printf("À¾Îñǯ¤È·î¤òºÆÆþÎÏ:");
			}
	}
/* ɽ¼¨1 */
	disp(y, m, hi, you);

	rewind(stdin);
	getchar();

	}


¢¬¤Î,

/*¡¡ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯¡¡*/
	while(nEndFlg != 1){
		
		rewind(stdin);
		scanf("%d %d",&y,&m);
		
		if((y >= 1000 && y <= 9999) && (m >= 1 && m <= 12))
			nEndFlg = 1;
		else{
			printf("ÆþÎÏ¥¨¥é¡¼!\n");
			printf("À¾Îñǯ¤È·î¤òºÆÆþÎÏ:");
			}
	}


¤³¤ÎÉôʬ¤ò
void input(int *y, int *m)
¤È¤¤¤¦´Ø¿ô¤Ë¤·¤¿¤¤¤Î¤Ç¤¹¤¬,
¾å¼ê¤¯¹Ô¤­¤Þ¤»¤ó¡£
¤É¤¦¤¹¤ì¤Ð´Ø¿ô²½¤Ç¤­¤ë¤Ç¤·¤ç¤¦¤«¡£
¤ª´ê¤¤¤·¤Þ¤¹¡£





No.10388

Re:¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¤¿¤«(2003/11/09 18:41:49)


´Ø¿ôdisp()¤Ë¥í¥¸¥Ã¥¯¥ß¥¹¤¬¤¢¤ê¤Þ¤·¤¿¤Î¤Çľ¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£
0==ÆüÍËÆü¡¢6==ÅÚÍËÆü¤Ç¤¹¡£

¤½¤ì¤«¤é rewind(stdin); ¤È¤¤¤¦¼Â¹Ô·ë²Ì¤¬Ì¤ÄêµÁ¤Ê»È¤¤Êý¤ò¤·¤Æ¤¢¤ë
Éôʬ¤¬¤¢¤ê¤Þ¤¹¡£stdin¤Ï¥Ñ¥¤¥×¤Ç¤Ä¤Ê¤¬¤ì¤ë²ÄǽÀ­¤¬¤¢¤ë¤Î¤Ç¡¢¤³¤¦¤¤¤¦
»È¤¤Êý¤Ï»×¤ï¤Ì¼Â¹Ô»þ¥¨¥é¡¼¤ò¾·¤¯´í¸±À­¤ò¤Ï¤é¤ó¤Ç¤¤¤Þ¤¹¡£

/*¡¡¥¤¥ó¥¯¥ë¡¼¥É½èÍý  */
#include <stdio.h>
#include <stdlib.h>
#include<string.h>

/*¡¡´Ø¿ô¥×¥í¥È¥¿¥¤¥×Àë¸À¡¡*/
int day(int y, int m);
int date(int y, int m, int d);
void disp(int y, int m, int hi, int you);
void input(int *y, int *m);

/*------------*/
/* ·×»»´Ø¿ô1 */
/*------------*/
int day(int y, int m)
{
    int d = 0;                       //¥ê¥¿¡¼¥óÃÍ
    
    if ((m == 2)&&(((y%4 == 0) && (y%100 != 0)) || (y % 400 == 0)))//2·î¤Ç±¼Ç¯
			d = 29;
	else
	{
		 if (m == 2)                                              //2·î¤ÇÊ¿¾ïǯ
			d = 28;
		else
		{
			if((m == 4)||(m == 6)||(m == 9)||(m == 11))          //4,6,9,11·î¤Î¤È¤­
				d = 30;
			else										        //¤½¤ì°Ê³°¤Î¤È¤­
				d = 31;
		}
	}

    return d;
}

/*------------*/
/* ·×»»´Ø¿ô2 */
/*------------*/
int date(int y, int m, int d)
{
	if(m==1 || m==2)//1·î¤ª¤è¤Ó2·î¤Î¤È¤­¤Ï,
	{
		y -= 1;     //ǯ¿ô¤«¤é£±¤ò°ú¤­,
		m += 10;    //·î¿ô¤Ë10¤ò²Ã¤¨¤ë¡£
	}
//	else			//¤½¤Î¾¤Î·î¤Î¤È¤­¤Ï,
//		m -= 2;		//·î¿ô¤«¤é2¤ò°ú¤¯¡£
  
    return (y + y / 4 - y / 100 + y / 400 + ((int)2.6 * m - (int)0.195) + d) % 7;//Zeller¤Î¸ø¼°
}

/*------------*/
/* ɽ¼¨´Ø¿ô1*/
/*------------*/
void disp(int y, int m, int hi, int you)
{
    int i;

    you = date(y, m, 1);			//ÍËÆü¥³¡¼¥É
    hi = day(y, m);					//ÆüÉÕ
    
    printf(" %dǯ%d·î\n", y, m);		//À¾Îñǯ¤È·î¤òɽ¼¨¡£
    printf(" Æü ·î ²Ð ¿å ÌÚ ¶â ÅÚ\n");	//ÍËÆü¤òɽ¼¨¡£
       
    for (i = 0; i < you; i++)			//ÍËÆü¥³¡¼¥É¿ôʬ¤À¤±¶õÇò¤òɽ¼¨¡£
        printf("   ");
    for (i = 0; i < hi; i++)			//ÆüÉÕ¤òɽ¼¨¡£
	{
        printf(" %2d", i);				//ÅÚÍËÆü¤Ê¤é²þ¹Ô¤·,
        if ( (i + you) % 7 == 6)			//ÍËÆüɽ¼¨¥³¡¼¥É¤ò0¤Ë¤¹¤ë¡£
            putchar('\n');				//¤½¤ì°Ê³°¤ÎÍËÆü¤Ê¤é,ÍËÆü¥³¡¼¥É¤Ë1¤ò­¤¹¡£
    }
}

/*¡¡¥á¥¤¥ó´Ø¿ô  */
int main(void)
{

/*¡¡³ÆÊÑ¿ôÀë¸À  */ 
int y, m;	      //À¾Îñǯ,·î
int hi = 0,you = 0; //Æü¿ô,ÍËÆü¥³¡¼¥É
/*¡¡¥«¥ì¥ó¥À¡¼É½¼¨¤Î¾ì¹ç¡¡*/

  input(&y, &m);

/* ɽ¼¨1 */
	disp(y, m, hi, you);

	rewind(stdin);
	getchar();

  return 0;
}

void input(int *y, int *m)
{
  int nEndFlg = 0;

/*¡¡À¾Îñǯ¤È·î¤ÎÆþÎÏ¡¡*/

	printf("À¾Îñǯ¤È·î¤òÆþÎÏ:");
	
/*¡¡ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯¡¡*/
	while(nEndFlg != 1){
		
		rewind(stdin);
		scanf("%d %d", y, m);
		
		if((*y >= 1000 && *y <= 9999) && (*m >= 1 && *m <= 12))
			nEndFlg = 1;
		else{
			printf("ÆþÎÏ¥¨¥é¡¼!\n");
			printf("À¾Îñǯ¤È·î¤òºÆÆþÎÏ:");
			}
	}
}


No.10391

Re:¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¥ß¥³(2003/11/09 20:25:41)


¤´»ØÅ¦¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

¤¿¤À,½¤Àµ¤·¤Æ¤¤¤¿¤À¤¤¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤¿¤é,
´ñ̯¤Ê¼Â¹Ô·ë²Ì¤¬É½¼¨¤µ¤ì¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤¹¤¬¡¦¡¦¡¦¡£

À¾Îñǯ¤È·î¤òÆþÎÏ:2003
11
 2003ǯ11·î
 Æü ·î ²Ð ¿å ÌÚ ¶â ÅÚ
                 0  1
  2  3  4  5  6  7  8
  9 10 11 12 13 14 15
 16 17 18 19 20 21 22
 23 24 25 26 27 28 29


No.10393

Re:¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¤¿¤«(2003/11/09 20:50:06)


>¤´»ØÅ¦¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
>
>¤¿¤À,½¤Àµ¤·¤Æ¤¤¤¿¤À¤¤¤¿¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤¿¤é,
>´ñ̯¤Ê¼Â¹Ô·ë²Ì¤¬É½¼¨¤µ¤ì¤Æ¤·¤Þ¤Ã¤¿¤Î¤Ç¤¹¤¬¡¦¡¦¡¦¡£

ºÑ¤ß¤Þ¤»¤ó¡¢°û¼òÃæ¤Î¤»¤¤¤«(^_^;)¤¤¤Ä¤â¤è¤ê½¸ÃæÎϤ¬ÂçÉý¤Ë
Äã²¼¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ç¤ª¤«¤·¤«¤Ã¤¿¤é¤Þ¤¿¸À¤Ã¤Æ²¼¤µ¤¤¡£

/*¡¡¥¤¥ó¥¯¥ë¡¼¥É½èÍý  */
#include <stdio.h>
#include <stdlib.h>
#include<string.h>

/*¡¡´Ø¿ô¥×¥í¥È¥¿¥¤¥×Àë¸À¡¡*/
int day(int y, int m);
int date(int y, int m, int d);
void disp(int y, int m, int hi, int you);
void input(int *y, int *m);

/*------------*/
/* ·×»»´Ø¿ô1 */
/*------------*/
int day(int y, int m)
{
    int d = 0;                       //¥ê¥¿¡¼¥óÃÍ
    
    if ((m == 2)&&(((y%4 == 0) && (y%100 != 0)) || (y % 400 == 0)))//2·î¤Ç±¼Ç¯
			d = 29;
	else
	{
		 if (m == 2)                                              //2·î¤ÇÊ¿¾ïǯ
			d = 28;
		else
		{
			if((m == 4)||(m == 6)||(m == 9)||(m == 11))          //4,6,9,11·î¤Î¤È¤­
				d = 30;
			else										        //¤½¤ì°Ê³°¤Î¤È¤­
				d = 31;
		}
	}

    return d;
}

/*------------*/
/* ·×»»´Ø¿ô2 */
/*------------*/
int date(int y, int m, int d)
{
	if(m==1 || m==2)//1·î¤ª¤è¤Ó2·î¤Î¤È¤­¤Ï,
	{
		y -= 1;     //ǯ¿ô¤«¤é£±¤ò°ú¤­,
		m += 10;    //·î¿ô¤Ë10¤ò²Ã¤¨¤ë¡£
	}
//	else			//¤½¤Î¾¤Î·î¤Î¤È¤­¤Ï,
//		m -= 2;		//·î¿ô¤«¤é2¤ò°ú¤¯¡£
  
    return (y + y / 4 - y / 100 + y / 400 + ((int)2.6 * m - (int)0.195) + d) % 7;//Zeller¤Î¸ø¼°
}

/*------------*/
/* ɽ¼¨´Ø¿ô1*/
/*------------*/
void disp(int y, int m, int hi, int you)
{
    int i;

    you = date(y, m, 1);			//ÍËÆü¥³¡¼¥É
    hi = day(y, m);					//ÆüÉÕ
    
    printf(" %dǯ%d·î\n", y, m);		//À¾Îñǯ¤È·î¤òɽ¼¨¡£
    printf(" Æü ·î ²Ð ¿å ÌÚ ¶â ÅÚ\n");	//ÍËÆü¤òɽ¼¨¡£
       
    for (i = 0; i <= you; i++)			//ÍËÆü¥³¡¼¥É¿ôʬ¤À¤±¶õÇò¤òɽ¼¨¡£
        printf("   ");
    for (i = 0; i < hi; i++)			//ÆüÉÕ¤òɽ¼¨¡£
	{
        printf(" %2d", i + 1);				//ÅÚÍËÆü¤Ê¤é²þ¹Ô¤·,
        if ( (i + you + 1) % 7 == 6)			//ÍËÆüɽ¼¨¥³¡¼¥É¤ò0¤Ë¤¹¤ë¡£
            putchar('\n');				//¤½¤ì°Ê³°¤ÎÍËÆü¤Ê¤é,ÍËÆü¥³¡¼¥É¤Ë1¤ò­¤¹¡£
    }
}

/*¡¡¥á¥¤¥ó´Ø¿ô  */
int main(void)
{

/*¡¡³ÆÊÑ¿ôÀë¸À  */ 
int y, m;	      //À¾Îñǯ,·î
int hi = 0,you = 0; //Æü¿ô,ÍËÆü¥³¡¼¥É
/*¡¡¥«¥ì¥ó¥À¡¼É½¼¨¤Î¾ì¹ç¡¡*/

  input(&y, &m);

/* ɽ¼¨1 */
	disp(y, m, hi, you);

	rewind(stdin);
	getchar();

  return 0;
}

void input(int *y, int *m)
{
  int nEndFlg = 0;

/*¡¡À¾Îñǯ¤È·î¤ÎÆþÎÏ¡¡*/

	printf("À¾Îñǯ¤È·î¤òÆþÎÏ:");
	
/*¡¡ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯¡¡*/
	while(nEndFlg != 1){
		
		rewind(stdin);
		scanf("%d %d", y, m);
		
		if((*y >= 1000 && *y <= 9999) && (*m >= 1 && *m <= 12))
			nEndFlg = 1;
		else{
			printf("ÆþÎÏ¥¨¥é¡¼!\n");
			printf("À¾Îñǯ¤È·î¤òºÆÆþÎÏ:");
			}
	}
}


No.10394

Re:¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¥ß¥³(2003/11/09 21:49:48)


ư¤­¤Þ¤·¤¿¡ª¡£
¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

No.10395

Re:¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¥ß¥³(2003/11/09 22:36:31)


º£Å٤ϡÖǯ,·î,Æü¡×¤òÆþÎϤ·¤Æ,
¤½¤ÎÆü¤Î¡ÖÍËÆü¡×¤òɽ¼¨¤µ¤»¤ë¥×¥í¥°¥é¥à¤òºî¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬,

/*¡¡¥¤¥ó¥¯¥ë¡¼¥É½èÍý  */
#include <stdio.h>
#include <stdlib.h>

/*¡¡´Ø¿ô¥×¥í¥È¥¿¥¤¥×Àë¸À¡¡*/
int date(int y, int m, int d);
void input(int *y, int *m);
void disp_2(int y, int m, int d);

/*------------*/
/* ·×»»´Ø¿ô2 */
/*------------*/
int date(int y, int m, int d)
{
    
	if (m == 1 || m == 2) {
        y -= 1;
        m += 10;
    }
//	else
		m -= 2;

    return (y + y/4 - y/100 + y/400 + ((int)2.6 * m - (int)0.195) + d) % 7;

}

/*--------------------------*/	
/*¡¡ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯´Ø¿ô¡¡*/
/*--------------------------*/	
void input(int *y, int *m)
{
	int d;
	int a;

/*¡¡À¾Îñǯ¤È·î¤ÎÆþÎÏ¡¡*/
	printf("À¾Îñǯ¤È·î¤ÈÆü¤òÆþÎÏ:");

/*¡¡ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯¡¡*/
	for(a = 0; a < 1;){
		
		rewind(stdin);
		scanf("%d %d %d",&*y,&*m,&d);
		
		if((*y >= 1000 && *y <= 9999) && (*m >= 1 && *m <= 12))
			a += 1;
		else{			
			printf("ÆþÎÏ¥¨¥é¡¼!\n");
			printf("ºÆÆþÎÏ:");
			}
	}
}

/*----------*/
/*¡¡É½¼¨2¡¡*/
/*----------*/
void disp_2(int y, int m, int d);
void disp_2(int y, int m, int d) 
 
	{
	int k;                                                     //ÍËÆü
	static char *w[7] = { "Æü","·î","²Ð","¿å","ÌÚ","¶â","ÅÚ" };//ÍËÆü¥³¡¼¥É

	/*¡¡·×»»­¢¡¡*/
    k = date(y, m, d); 
	
	printf("À¾Îñ%dǯ%d·î%dÆü¤Ï%sÍËÆü¤Ç¤¹\n", y, m, d, w[k]);
	}

/*¡¡¥á¥¤¥ó´Ø¿ô  */
int main(void)
{

/*¡¡³ÆÊÑ¿ôÀë¸À  */ 

int y, m,d;						//À¾Îñǯ,·î,Æü

/*¡¡ÍËÆü¤Îɽ¼¨¡¡*/


/*¡¡ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯¡¡*/
	input(&y, &m);

/*¡¡É½¼¨2¡¡*/
	disp_2(y, m, d);
	
	rewind(stdin);
	getchar();
	return 0;
}


¢¬¤³¤ì¤ò,
¡¡ÆþÎϤµ¤ì¤¿¡ÖÆü¡×¤¬
¤½¤Î¡Öǯ¡×¤Î¤½¤Î¡Ö·î¡×¤ËËÜÅö¤Ë¤¢¤ë¤Î¤«³Îǧ,¤Ê¤±¤ì¤ÐºÆÆþÎϤµ¤»¤ë¡£
¤È¤¤¤¦¤³¤È¤â´Þ¤á¤Æ,¤­¤Á¤ó¤Èư¤¯¤è¤¦¤ËÊѤ¨¤¿¤¤¤Î¤Ç¤¹¤¬¡£
¤É¤¦¤·¤¿¤é¤¤¤¤¤Î¤«¶µ¤¨¤Æ¤¤¤¿¤À¤±¤Þ¤»¤ó¤«¡©

No.10400

Re:¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¤¿¤«(2003/11/10 13:30:19)


>º£Å٤ϡÖǯ,·î,Æü¡×¤òÆþÎϤ·¤Æ,
>¤½¤ÎÆü¤Î¡ÖÍËÆü¡×¤òɽ¼¨¤µ¤»¤ë¥×¥í¥°¥é¥à¤òºî¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¹¤¬,
>¤³¤ì¤ò,
>ÆþÎϤµ¤ì¤¿¡ÖÆü¡×¤¬
>¤½¤Î¡Öǯ¡×¤Î¤½¤Î¡Ö·î¡×¤ËËÜÅö¤Ë¤¢¤ë¤Î¤«³Îǧ,¤Ê¤±¤ì¤ÐºÆÆþÎϤµ¤»¤ë¡£
>¤È¤¤¤¦¤³¤È¤â´Þ¤á¤Æ,¤­¤Á¤ó¤Èư¤¯¤è¤¦¤ËÊѤ¨¤¿¤¤¤Î¤Ç¤¹¤¬¡£
>¤É¤¦¤·¤¿¤é¤¤¤¤¤Î¤«¶µ¤¨¤Æ¤¤¤¿¤À¤±¤Þ¤»¤ó¤«¡©

¤³¤ó¤Ê´¶¤¸¤Ç¤¹¤Í¡£
²¿ÅÙ¤â¸À¤¤¤Þ¤¹¤¬¡¢rewind(stdin)¤È¤¤¤¦»È¤¤Êý¤Ï¤ä¤á¤Þ¤·¤ç¤¦¡£
¡ôZeller¤Î¸ø¼°¤¬Ä̾ï»È¤Ã¤Æ¤¤¤ë¤â¤Î¤È¤Ï°Û¤Ê¤Ã¤Æ¤Þ¤·¤¿¤Î¤Ç
¡ô¤Ä¤¤¤Ç¤Ëľ¤·¤Æ¤ª¤­¤Þ¤·¤¿¡£

/* ¥¤¥ó¥¯¥ë¡¼¥É½èÍý */
#include <stdio.h>
#include <stdlib.h>

/* ´Ø¿ô¥×¥í¥È¥¿¥¤¥×Àë¸À */
int date(int y, int m, int d);
void input(int *y, int *m, int *d);
void disp_2(int y, int m, int d);

/* ¥á¥¤¥ó´Ø¿ô  */
int main(void)
{
  /*  ³ÆÊÑ¿ôÀë¸À  */ 
  int y, m, d; /* À¾Îñǯ,·î,Æü */

  /* ÍËÆü¤Îɽ¼¨ */

  /* ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯ */
  input(&y, &m, &d);

  /* ɽ¼¨2 */
  disp_2(y, m, d);

  getchar();
  return 0;
}

/*------------*/
/* ·×»»´Ø¿ô2  */
/*------------*/
int date(int y, int m, int d)
{
  if (m == 1 || m == 2) {
    y--;
    m += 12;
  }
  /* Zeller¤Î¸ø¼° */
  return (y + y / 4 - y / 100 + y / 400 + (int)((13.0 * m + 8) / 5 + d)) % 7;
}

/*--------------------------*/	
/*  ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯´Ø¿ô  */
/*--------------------------*/	
void input(int *y, int *m, int *d)
{
  int leap;
  char buf[128];

  /*  À¾Îñǯ¤È·î¤ÎÆþÎÏ  */
  printf("À¾Îñǯ¤È·î¤ÈÆü¤òÆþÎÏ:");

  /*  ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯  */
  while (1) {
    scanf("%d %d %d", y, m, d);
    gets(buf); /* ¥Ð¥Ã¥Õ¥¡¤Ë»Ä¤Ã¤¿Ê¸»ú¤ò¼è¤ê½ü¤¯ */
    
    /* ±¼Ç¯°Ê³°¤Î¾ì¹ç¤Ï2·î29Æü¤È¤¤¤¦ÆþÎϤò¥¨¥é¡¼¤Ë¤¹¤ë */
    leap = (*y % 4 == 0) && (*y % 100 != 0) || (*y % 400 == 0);
    if ((*y >= 1583 && *y <= 3999) && (*m >= 1 && *m <= 12))
      if (!leap)
        break;
      else /* ±¼Ç¯ */
        if (*m != 2 || *m == 2 && *d < 29) break;
    printf("ÆþÎÏ¥¨¥é¡¼!\n");
    printf("ºÆÆþÎÏ:");
  }
}

/*----------*/
/*  ɽ¼¨2   */
/*----------*/
void disp_2(int y, int m, int d) 
{
  int k;                                                    //ÍËÆü
  static char *w[] = { "Æü","·î","²Ð","¿å","ÌÚ","¶â","ÅÚ" };//ÍËÆü¥³¡¼¥É

  /* ·×»»­¢ */
  k = date(y, m, d); 
  
  printf("À¾Îñ%dǯ%d·î%dÆü¤Ï%sÍËÆü¤Ç¤¹\n", y, m, d, w[k]);
}


No.10401

Re:¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¤¿¤«(2003/11/10 13:45:16)


¤¢¤Ã¤½¤¦¤«¡¢30Æü¤Þ¤Ç¤·¤«¤Ê¤¤·î¤ÎȽÊ̤ò˺¤ì¤Æ¤¤¤Þ¤·¤¿¡£
º£¤Á¤ç¤Ã¤È»Å»ö¤¬Ë»¤·¤¤¤Î¤ÇͼÊý¤Ë¤Ç¤â¡£

No.10405

Re:¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¤¿¤«(2003/11/10 17:15:33)


¤³¤ì¤Ç¤É¤¦¤Ç¤·¤ç¤¦¤«¡£

/* ¥¤¥ó¥¯¥ë¡¼¥É½èÍý */
#include <stdio.h>
#include <stdlib.h>

/* ´Ø¿ô¥×¥í¥È¥¿¥¤¥×Àë¸À */
int date(int y, int m, int d);
int isexistthirty1st(int m);
void input(int *y, int *m, int *d);
void disp_2(int y, int m, int d);

/* ¥á¥¤¥ó´Ø¿ô  */
int main(void)
{
  /*  ³ÆÊÑ¿ôÀë¸À  */ 
  int y, m, d; /* À¾Îñǯ,·î,Æü */

  /* ÍËÆü¤Îɽ¼¨ */

  /* ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯ */
  input(&y, &m, &d);

  /* ɽ¼¨2 */
  disp_2(y, m, d);

  getchar();
  return 0;
}

/*------------*/
/* ·×»»´Ø¿ô2  */
/*------------*/
int date(int y, int m, int d)
{
  if (m == 1 || m == 2) {
    y--;
    m += 12;
  }
  /* Zeller¤Î¸ø¼° */
  return (y + y / 4 - y / 100 + y / 400 + (int)((13.0 * m + 8) / 5 + d)) % 7;
}

/*------------*/
/* ·×»»´Ø¿ô3  */
/*------------*/
int isexistthirty1st(int m)
{
  int i, month[] = {1, 3, 5, 7, 8, 10, 12};

  for (i = 0; i < 7; i++)
    if (m == month[i]) return 1;
  return 0;
}

/*--------------------------*/
/*  ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯´Ø¿ô  */
/*--------------------------*/
void input(int *y, int *m, int *d)
{
  int leap;
  char buf[128];

  /*  À¾Îñǯ¤È·î¤ÎÆþÎÏ  */
  printf("À¾Îñǯ¤È·î¤ÈÆü¤òÆþÎÏ:");

  /*  ÆþÎϥǡ¼¥¿¥Á¥§¥Ã¥¯  */
  while (1) {
    scanf("%d %d %d", y, m, d);
    gets(buf); /* ¥Ð¥Ã¥Õ¥¡¤Ë»Ä¤Ã¤¿Ê¸»ú¤ò¼è¤ê½ü¤¯ */
    
    /* 30Æü¤Þ¤Ç¤·¤«¤Ê¤¤·î¤Ë31Æü°Ê¾å¤òÆþ¤ì¤¿¾ì¹ç¡¢¹¹¤Ë
    /* ¹¹¤Ë±¼Ç¯°Ê³°¤Î¾ì¹ç¤Ï2·î29Æü¤È¤¤¤¦ÆþÎϤò¥¨¥é¡¼¤Ë¤¹¤ë */
    leap = (*y % 4 == 0) && (*y % 100 != 0) || (*y % 400 == 0);
    if ((*y >= 1583 && *y <= 3999) && (*m >= 1 && *m <= 12) && (isexistthirty1st(*m)) ? *d <= 31 : *d <= 30)
      if (!leap) {
        if (*m != 2 || *d >= 1 && *d < 29) break;
      } else /* ±¼Ç¯ */
        if (*m != 2 || *d >= 1 && *d < 30) break;
    printf("ÆþÎÏ¥¨¥é¡¼!\n");
    printf("ºÆÆþÎÏ:");
  }
}

/*----------*/
/*  ɽ¼¨2   */
/*----------*/
void disp_2(int y, int m, int d) 
{
  int k;                                                    //ÍËÆü
  static char *w[] = { "Æü","·î","²Ð","¿å","ÌÚ","¶â","ÅÚ" };//ÍËÆü¥³¡¼¥É

  /* ·×»»­¢ */
  k = date(y, m, d); 
  
  printf("À¾Îñ%dǯ%d·î%dÆü¤Ï%sÍËÆü¤Ç¤¹\n", y, m, d, w[k]);
}


No.10412

Re:¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¥ß¥³(2003/11/10 21:23:15)


²¿Å٤⤪À¤ÏäˤʤäƤ¹¤ß¤Þ¤»¤ó¡£
¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£


No.10413

Re:¼«ºî´Ø¿ô¤Ë
Åê¹Æ¼Ô---¤¿¤«(2003/11/10 22:09:26)


>²¿Å٤⤪À¤ÏäˤʤäƤ¹¤ß¤Þ¤»¤ó¡£
>¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£

¤¢¤È¶¯¤¤¤Æ¸À¤¨¤Ð2·î°Ê³°¤ÎÆü¤ÎÆþÎϤǥޥ¤¥Ê¥¹¤Î¿ô¤òÆþ¤ì¤¿»þ¤Î¥Á¥§¥Ã¥¯
¤ò˺¤ì¤Æ¤¤¤Þ¤¹¤Î¤ÇÊÙ¶¯¤¬¤Æ¤é²þ¤¤·¤Æ¤ß¤Æ²¼¤µ¤¤¡£